WPF: поиск элемента управления в ресурсе - PullRequest
0 голосов
/ 04 августа 2011

Я хотел бы получить контроль над ресурсом. но это трудно для меня.

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");

Как я могу получить контроль ibtnAddToFavorite в xaml? причины, FindName не удалось. (Возвращает ноль.)

пс. IconButton - это пользовательский элемент управления.

Ответы [ 2 ]

2 голосов
/ 04 августа 2011

Как только вы создадите экземпляр Span, вы сможете использовать VisualTreeHelper , чтобы развернуть визуальное дерево и добраться до вашего IconButton.

0 голосов
/ 04 августа 2011

Из предоставленного вами кода я вижу dgWPFCtrl: IconButton не является ресурсом.Это дочерний элемент InlineUIContainer, который, в свою очередь, является частью ресурса, называемого spanParagrahTitle

Таким образом, способ доступа к нему -

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