一个相当简单的问题(我认为!),但我似乎无法找到一个简单的答案。
我已经构建了一个测试 WPF 应用程序,其中包含一个选项卡控件和两个选项卡项。每个 tabitem 上都有一个按钮,它的内容绑定到存储在本地资源字典中的路径。Path 的 Fill 属性使用 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>