2009-10-15 81 views
6

我们有一个在加载时通​​过我们的XAML页面递归的语言化机制,检查Tag属性的每个元素并使用它的值检索字符串资源以应用于元素。它目前不支持工具提示,我们必须在每个页面上都有特定的代码才能将语言资源应用到它们。我试图将这个功能添加到我们的递归机制中。如何以编程方式访问Silverlight FrameworkElement的ToolTipService?

因此,我通过树递归,并为每个是FrameworkElement的元素,我想知道它是否有ToolTipService,如果是的话是否该ToolTipService有一个ToolTip元素。如果是这样,我想检索标签属性(如果有的话),并将Content属性设置为使用标签查找的值。我的问题是,我无法弄清楚如何确定是否有工具提示和getaccess。

下面是一个示例,显示了一个元素,在这种情况下是一个图像。如果我通过树递归并且当前元素是图像,我该如何到达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> 

回答

19

使用附加属性访问器: -

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

优秀。正是我需要的。没想到寻找静态方法/属性;只是看着我正在使用的元素的属性。有些事情要记住未来。 – 2009-10-15 09:59:45

+0

它们不是静态的,它们是附加依赖属性(即它们是由其他类定义的,而不是UIElement并且它们附属于它) – 2014-03-21 11:19:19