WPF:在资源中查找控件

本文关键字:查找 控件 资源 WPF | 更新日期: 2023-09-27 18:04:36

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

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)

p。

WPF:在资源中查找控件

一旦你实例化了你的Span,你应该能够使用VisualTreeHelper来钻取可视化树并得到你的IconButton

从您提供的代码中,我可以看到dgWPFCtrl:IconButton不是资源。它是InlineUIContainer的子元素,而InlineUIContainer又是资源"spanParagrahTitle"的一部分

访问它的方式是

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