如何以编程方式访问Silverlight FrameworkElement的ToolTipService?

6
我们有一种语言机制,当XAML页面加载时,它会递归遍历每个元素的Tag属性,并使用其值检索字符串资源并将其应用于该元素。目前它不支持工具提示,我们必须在每个页面上编写特定的代码来应用语言资源。我正试图将此功能添加到我们的递归机制中。
因此,我正在遍历树,并对于每个FrameworkElement元素,我想知道它是否具有ToolTipService,如果是,则需要知道该ToolTipService是否具有ToolTip元素。如果有,我想要检索任何Tag属性,并使用该标记查找值并将其设置为Content属性。我的问题是我无法确定是否存在工具提示并获取到它。
这里是一个示例,显示一个元素,即一个图像。如果我正在遍历树并且当前元素是该图像,那么如何访问到ToolTip?
<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>
1个回答

19

使用附加属性访问器:

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

太好了,正是我需要的。没有想到要查找静态方法/属性;我只是在查找我正在使用的元素的属性。这是未来需要记住的事情。 - Steve Crane
它们不是静态的,它们是附加依赖属性(也就是说,它们由其他类定义,而不是UIElement本身,并且附加到它上面)。 - George Birbilis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接