2009-10-15 2 views
6

У нас есть механизм томажа, который повторяется через наши страницы XAML при загрузке, анализирует каждый элемент свойства Tag и использует его значение для извлечения строкового ресурса для применения к элементу. В настоящее время он не поддерживает всплывающие подсказки, и мы должны иметь конкретный код на каждой странице, чтобы применить к ним устаревшие ресурсы. Я пытаюсь добавить эту функциональность в наш рекурсивный механизм.Как программно получить доступ к ToolTipService элемента Silverlight FrameworkElement?

Итак, я рекурсирую через дерево, и для каждого элемента, который является FrameworkElement, я хочу знать, имеет ли он ToolTipService, и если да, имеет ли этот ToolTipService элемент ToolTip. Если это так, я хочу получить свойство Tag, если оно есть, и установить свойство Content со значением, которое я ищу, используя тег. Моя проблема в том, что я не могу понять, как определить, есть ли всплывающая подсказка и getaccess.

Вот пример, показывающий элемент, в данном случае изображение. Если я рекурсирую через дерево, а текущий элемент - образ, как мне попасть в подсказку?

<Image x:Name="DateRangeSelectorButton" Grid.Column="0" Source="Images/OvalClock.png" Margin="2,0,2,0" Cursor="Hand"> 
    <ToolTipService.ToolTip> 
    <ToolTip Tag="dttlDateRangeSelectorButtonTooltip"/> 
    </ToolTipService.ToolTip> 
</Image> 

ответ

19

Используйте вложенное свойство аксессор: -

ToolTip tt = ToolTipService.GetToolTip(myFrameworkElement) As ToolTip; 
+0

Отлично. Только то, что мне было нужно. Не думал искать статические методы/свойства; просто смотрел на свойства элемента, с которым я работал. Что-то помнить о будущем. –

+0

они не являются статическими, они являются Attached Dependency Properties (то есть они определяются другим классом, а не UIElement, и они привязаны к нему) –

Смежные вопросы