Гость
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / ToolTip свойство. / 12 сообщений из 12, страница 1 из 1
22.12.2011, 00:21
    #37588030
Little_Cat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ToolTip свойство.
Доброго вечера. Есть такая мысль.
Реализован в рад контролах RadPanelBar список. Формируется список в коде
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
  Dim OkatItems As New RadPanelBarItem()
        
        Dim item1 As New TextBlock() With{.Text = "AAAAAAA"}
        Dim item2 As New TextBlock() With{.Text = "AAAAAAA"}
        Dim item3 As New TextBlock() With{.Text = "AAAAAAA"}
        Dim item4 As New TextBlock() With{.Text = "AAAAAAA"}
        Dim item5 As New TextBlock() With{.Text = "AAAAAAA"}

            OkatItems.Items.Add(item1)
            OkatItems.Items.Add(item2)
            OkatItems.Items.Add(item3)
            OkatItems.Items.Add(item4)
            OkatItems.Items.Add(item5)



Выполнил привязку событий по аналогии к айтемам

Код: vbnet
1.
2.
            AddHandler item1.MouseEnter,AddressOf item_MouseEnter
            AddHandler item1.MouseLeave,AddressOf item_MouseLeave



Необходимо в тоолтип получать данные сервера WCF (списочек данных из базы) при наведении крисы на айтем.
И все вроде как бы пучком. Могу определить атем на который криса наехала. НО получаются чудеса.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
    Private Sub item_MouseEnter(sender As Object, e As MouseEventArgs)
        Try
            Dim item As TextBlock  = TryCast(sender,TextBlock)
            If item.Tag IsNot Nothing Then
                Dim tt As TextBlock = FindItemRecursive(RadPanelBar1.Items,item.Tag.ToString)
                Dim str As New String(String.Format("{0}   {1}", DateTime.Now, item.Tag))
                ToolTipService.SetToolTip(tt,str)
                TextBox1.Text = item.Tag.ToString
            End If
        Catch ex As Exception
            TextBox1.Text = ex.Message
        End Try
    End Sub 



Вот если заменть переменную str у ToolTipService.SetToolTip на строку константу то толтип выводится но при повторном наведении крисы на итэм. Но любая другая инфа не выводится вообще. Как это сделать корректно. Подскажите. А то я замахался с этими тултипами. Фишка именно в динамической сборке обьекта для тултипа. По принципу тултипа у RadPieChart.
Спасибо.
...
Рейтинг: 0 / 0
22.12.2011, 09:59
    #37588314
enigmatic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ToolTip свойство.
Little_Cat,

При выставлении константы на сам итем панели у меня то же самое.
Выставляю тултип на текстблок в хидере RadPanelBarItem и все нормально.
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
        private void RadPanelBarItem1_MouseEnter(object sender, MouseEventArgs e) {
            var pbi = (RadPanelBarItem)sender;
            ToolTipService.SetToolTip(pbi, "ToolTip");
        }

        private void RadPanelBarItem2_MouseEnter(object sender, MouseEventArgs e) {
            var pbi = (RadPanelBarItem)sender;
            var header = (TextBlock)pbi.Header;
            ToolTipService.SetToolTip(header, "ToolTip");
        }



Но у вас тултип вешается на текстблок хидера
Код: vbnet
1.
2.
                Dim tt As TextBlock = FindItemRecursive(RadPanelBar1.Items,item.Tag.ToString)
                ToolTipService.SetToolTip(tt,str)


Все нормально должно быть по идее.
...
Рейтинг: 0 / 0
22.12.2011, 10:03
    #37588318
enigmatic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ToolTip свойство.
Little_Cat,

Кстати.
Не все используют телерик контролы.
Не все те, кто используют телерик контролы, используют RadPieChart.
И у вас WPF или Silverlight?
...
Рейтинг: 0 / 0
22.12.2011, 11:11
    #37588449
Little_Cat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ToolTip свойство.
Silverlight. Прошу прощения за возможные неточности. Дело в том что PieChart подходящий мне я нашел только в радах. Ну а раз там то и их PanelBar использовал.
Не совсем на хидер. Функция FindItemRecursive возвращает обьект TextBlock айтема панели с нужным содержимым. Но я смотрю не работает данный метод установки Тоолтипа не только у меня. Блин. Паршиво.
...
Рейтинг: 0 / 0
22.12.2011, 12:02
    #37588589
enigmatic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ToolTip свойство.
Little_Cat,

авторНе совсем на хидер. Функция FindItemRecursive возвращает обьект TextBlock айтема панели с нужным содержимым.
Т.е. то, что выделено красным?
авторНо я смотрю не работает данный метод установки Тоолтипа не только у меня.
У меня не сразу срабатывает установка тултипа на сам RadPanelBarItem, но установка на текстблок работает нормально. У вас идет установка тултипа на текстблок.

Тултип с константой на текстблок должен устанавливаться без проблем.
...
Рейтинг: 0 / 0
22.12.2011, 12:16
    #37588621
Little_Cat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ToolTip свойство.
Именно установка ТулТипа на отдельный айтем и привела меня сюда. Установка константы работает. Но нужно собрать обьект и воткнуть его в тултип.А именно собранный обьект и не отображается в тултипсах.
...
Рейтинг: 0 / 0
22.12.2011, 13:01
    #37588743
SeVa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ToolTip свойство.
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
 Dim OkatItems As New RadPanelBarItem()
        
        Dim item1 As New TextBlock() With{.Text = "AAAAAAA"}
        Dim item2 As New TextBlock() With{.Text = "AAAAAAA"}
        Dim item3 As New TextBlock() With{.Text = "AAAAAAA"}
        Dim item4 As New TextBlock() With{.Text = "AAAAAAA"}
        Dim item5 As New TextBlock() With{.Text = "AAAAAAA"}

            OkatItems.Items.Add(item1)
            OkatItems.Items.Add(item2)
            OkatItems.Items.Add(item3)
            OkatItems.Items.Add(item4)
            OkatItems.Items.Add(item5)



Зачем тащить левые контролы, когда outlook bar делается из обычного tabcontrol простым переопределением стиля
...
Рейтинг: 0 / 0
22.12.2011, 13:15
    #37588782
enigmatic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ToolTip свойство.
Little_Cat,

Покажите, как обращаетесь к серверу за объектом. Я с WCF пока не работал.
...
Рейтинг: 0 / 0
22.12.2011, 13:25
    #37588820
enigmatic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ToolTip свойство.
Little_Cat,

Вобщем, смотрите. Что-то типа этого должно работать:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
private void RadPanelBarItem1_MouseEnter(object sender, MouseEventArgs e) {
            var tt = (TextBlock)FindItemRecursive(RadPanelBar1.Items, item.Tag.ToString);
            var cc = new ContentControl();
            ToolTipService.SetToolTip(tt, cc);
            
            DataService.GetToolTip(idObject, (tooltipObject) => {
                cc.Content = tooltipObject;
            });
        }



Т.е. вешаем на текстблок тултип с контентом, потом устанавливаем контент самого тултипа.
...
Рейтинг: 0 / 0
22.12.2011, 16:56
    #37589394
enigmatic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ToolTip свойство.
SeVa,авторЗачем тащить левые контролы, Зачем тащить, если они и так уже используются?авторкогда outlook bar делается Там не совсем аутлукбар.авториз обычного tabcontrol В пятой версии SL обычный табконтрол уже научился работать без конвертеров?авторпростым переопределением стиля Придется переопределять шаблон контрола.
Если это простое, то какое тогда сложное?
...
Рейтинг: 0 / 0
22.12.2011, 22:49
    #37589912
Little_Cat
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ToolTip свойство.
enigmatic,

Нет, не получается. Часть кода, которая определяет ТулТип для сектора пирожка. Там это работает на УРА. Но там свои свойства самого обьекта.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
Dim [StackPanel] As New StackPanel With{.Orientation = Orientation.Vertical, _
                                        .Margin      = New Thickness(5,0,0,0), _ 
                                        .Name        = "NoInfo"}
   [StackPanel].Children.Add(New TextBlock With {.Text  ="Отсутствует связь с линией ", _
                                        .TextAlignment = TextAlignment.Left})
   [StackPanel].Children.Add(New TextBlock With {.Text  ="или линия отключена и не используется", _
                                        .TextAlignment = TextAlignment.Left})



Тут нет. Что ваш вариант с сонтентом

Код: vbnet
1.
2.
3.
                    Dim cc = new ContentControl()
                    ToolTipService.SetToolTip(tt, cc)
                    cc.Content = [StackPanel]


Что напрямую
Код: vbnet
1.
                    ToolTipService.SetToolTip(tt, [StackPanel])



По вашему вопросу, дайте мыло скину этот проектик в бэта версии, там работают пока только 2 метода но это 2 варианта Лист обьектов для Пирожка и обьект статистики для этого Тултипа из WCF.
...
Рейтинг: 0 / 0
29.12.2011, 14:04
    #37599002
enigmatic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ToolTip свойство.
Little_Cat,

Если еще актуально, то почта в профиле.
...
Рейтинг: 0 / 0
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / ToolTip свойство. / 12 сообщений из 12, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]