2009-10-15 19 views
6

Mamy mechanizm językowy, który powraca za pośrednictwem naszych stron XAML po załadowaniu, sprawdza każdy element pod kątem właściwości Tag i wykorzystuje jego wartość do pobrania zasobu napisów, aby zastosować go do elementu. Obecnie nie obsługuje podpowiedzi i musimy mieć określony kod na każdej stronie, aby zastosować do nich pomniejszone zasoby. Próbuję dodać tę funkcjonalność do naszego mechanizmu rekursywnego.Jak programowo uzyskać dostęp do ToolTipService z Silverlight FrameworkElement?

Więc powtarzam przez drzewo i dla każdego elementu, który jest FrameworkElement, chcę wiedzieć, czy ma on ToolTipService i jeśli tak, czy to ToolTipService ma element ToolTip. Jeśli tak, chcę odzyskać właściwość Tag, jeśli istnieje, i ustawić właściwość Zawartość z wartością, której szukam przy użyciu tego znacznika. Mój problem polega na tym, że nie potrafię określić, czy istnieje etykieta narzędzi i dostęp do niego.

Oto przykład pokazujący element, w tym przypadku obraz. Jeśli zajmuję się ponownym przeglądaniem drzewa, a bieżącym elementem jest obraz, w jaki sposób mogę dostać się do 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> 

Odpowiedz

19

pomocą załączonego akcesor własności: -

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

Doskonałe. Dokładnie to, czego potrzebowałem. Nie myślałem o poszukiwaniu statycznych metod/właściwości; właśnie patrzyłem na właściwości elementu, z którym pracowałem. Coś do zapamiętania na przyszłość. –

+0

nie są statyczne, są dołączone właściwości zależności (są zdefiniowane przez inną klasę, a nie UOWY i są do niej dołączone) –

Powiązane problemy