很简单的问题(我想!),但我似乎无法找到一个简单的答案。WPF findancestor不工作在第二个tabitem
我已经构建了一个包含tabcontrol和两个选项卡项目的测试WPF应用程序。在每个tabitem上是一个按钮,它的内容被绑定到存储在本地资源字典中的Path中。路径的填充属性使用FindAncestor绑定按钮的Foreground属性。
问题:在tab1上内容正确显示,但在tab2上它根本不显示。如果我删除FindAncestor绑定并用画笔替换(例如,白色),则两个按钮都可以正确显示。
我希望我失去了一些简单的东西,因为这看起来应该是可能的东西。
代码:
<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>
它已经不共享(见倒数第二个属性) – OZ10