WPF:在资源中查找控件

时间:2011-08-04 16:27:38

标签: c# wpf resources controls

我想获得资源控制权。但这对我来说很难。

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失败了。 (它返回null。)

PS。 IconButton是用户控件。

2 个答案:

答案 0 :(得分:2)

一旦实例化了Span,您应该可以使用VisualTreeHelper向下钻取可视树并转到IconButton。

答案 1 :(得分:0)

从您提供的代码中,我可以看到dgWPFCtrl:IconButton不是资源。它是InlineUIContainer的一个孩子,后者又被称为“spanParagrahTitle”资源的一部分

所以访问的方式是

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