2011-08-04 115 views
0

我想獲取資源控件。但對我來說很難。WPF:在資源中查找控件

1.資源(XAML)

<Span x:Key="spanParagrahTitle" x:Shared="false"> 
    <InlineUIContainer BaselineAlignment="Center"> 
     <dgWPFCtrl:IconButton x:Name="ibtnAddToFavorite" Cursor="Hand" IsPressible="True"/> 
    <InlineUIContainer BaselineAlignment="Center"> 
</Span> 

2碼

Span myTitle = (Span)appRes["spanParagrahTitle"]; 
IconButton ibtnAddToFavorite = (IconButton)myTitle.FindName("ibtnAddToFavorite"); 

我怎樣才能在XAML控制ibtnAddToFavorite?原因爲 ,FindName失敗。 (它返回空)。

ps。 IconButton是用戶控件。

回答

2

一旦你已經實例化你的跨度,你應該能夠使用VisualTreeHelper深入查看可視化樹併到達你的IconButton。

+0

謝謝你給的線索給我。解決此問題的最佳方法是LogicalTreeHelper.FindLogicalNode()方法。 – mjk6026

0

從您提供的代碼中,我可以看到dgWPFCtrl:IconButton不是資源。它InlineUIContainer的孩子這又是所謂的「spanParagrahTitle」

所以訪問方式資源的一部分,是

Span myTitle = (Span)appRes["spanParagrahTitle"]; 
IconButton ibtnAddToFavorite = ((InlineUIContainer)(myTitle.Content)).Content as IconButton; 
+0

它不能。量程不具有內容屬性。謝謝。 – mjk6026