Tout un problème simple (je pense!) Mais je n'arrive pas à trouver une réponse simple pour cela.WPF findancestor ne fonctionne pas sur le second tabitem
J'ai construit une application de test WPF qui contient un tabcontrol et deux éléments d'onglet. Sur chaque tabitem est un bouton et son contenu est lié à un chemin qui est stocké dans un dictionnaire de ressources local. La propriété Fill's Path est liée à la propriété Foreground du bouton à l'aide de FindAncestor.
Le problème: Sur l'onglet 1 le contenu s'affiche correctement mais sur l'onglet 2 il ne s'affiche pas du tout. Si je supprime la liaison FindAncestor et remplace avec une brosse (par exemple, blanc), les deux boutons s'affichent correctement. J'espère qu'il me manque quelque chose de simple parce que cela semble être quelque chose qui devrait être possible.
code:
<Window.Resources>
<ResourceDictionary>
<Path x:Key="TickIcon2" Fill="{Binding Foreground, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Control}}}" Stretch="Uniform" x:Shared="False" Data="F1 M 23.7501,33.25L 34.8334,44.3333L 52.2499,22.1668L 56.9999,26.9168L 34.8334,53.8333L 19.0001,38L 23.7501,33.25 Z"/>
</ResourceDictionary>
</Window.Resources>
<Grid>
<TabControl>
<TabItem Header="1">
<Button Content="{DynamicResource TickIcon2}" Width="50" Height="50" />
</TabItem>
<TabItem Header="2">
<Button Content="{DynamicResource TickIcon2}" Width="50" Height="50" />
</TabItem>
</TabControl>
</Grid>
Il est déjà non partagé (voir l'avant-dernière propriété) – OZ10