2009-10-15 84 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