WPF findancestor无法处理第二个项目

OZ10

一个很简单的问题(我想!),但是我似乎找不到一个简单的答案。

我已经构建了一个测试WPF应用程序,其中包含一个tabcontrol和两个选项卡项。每个选项卡上都有一个按钮,其内容绑定到存储在本地资源字典中的路径。使用FindAncestor将Path的Fill属性绑定到按钮的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

我发现了一个解决方案,以防有人碰到这个问题。如果我使用“绑定”而不是“ DynamicResourse”,则路径会在两个选项卡上正确显示:

<Grid>
    <TabControl>
        <TabItem Header="1">
            <Button Content="{Binding Mode=OneWay, Source={StaticResource TickIcon2}}"  Width="50" Height="50" />
        </TabItem>
        <TabItem Header="2">
            <Button  Content="{Binding Mode=OneWay, Source={StaticResource TickIcon2}}"  Width="50" Height="50" />
        </TabItem>
    </TabControl>
</Grid>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在第二个屏幕上放置WPF ContextMenu

来自分类Dev

WPF 在一个 ListBox 中选择项目并在第二个 ListBox 中显示相应的列表

来自分类Dev

如何在WPF的第二个屏幕中启动第二个应用程序?

来自分类Dev

WPF-从第二个窗口返回第一个窗口

来自分类Dev

如何在WPF中向第二个实体添加CRUD操作

来自分类Dev

Windows 10中的第二个屏幕上的WPF窗口对象被涂黑

来自分类Dev

WPF禁用主窗口,而第二个窗口打开直到关闭

来自分类Dev

关闭在MainWindow WPF中创建的第二个窗口

来自分类Dev

WPF ComboBox选择导致在第二个ComboBox中进行选择

来自分类Dev

方法运行时打开第二个窗口-WPF

来自分类Dev

WPF LiveCharts 样式:多个图表导致第二个图表出错

来自分类Dev

WPF-在第一个组合框选择上启用第二个组合框

来自分类Dev

WPF:从XAML设置ViewModel,为什么第二个解决方案不起作用?

来自分类Dev

需要基于第二个ComboBox的SelectedValue设置WPF MVVM ComboBox ItemsSource的简单工作示例

来自分类Dev

主窗口上的文本框必须更改 wpf 中第二个窗口上的标签内容

来自分类Dev

在App.xaml.cs的OnStartup中关闭第一个窗口后,再打开C#WPF第二个窗口

来自分类Dev

Java Socket Server无法处理第二个客户端

来自分类Dev

无法向Spring Data Starter项目添加第二个实体

来自分类Dev

项目中的第二个servlet无法正常工作

来自分类Dev

无法将第二个模板加载到我的Django项目中

来自分类Dev

strtok()不处理第二个令牌

来自分类Dev

strtok()不处理第二个令牌

来自分类Dev

批处理中的第二个命令

来自分类Dev

第二个INSERT INTO未处理

来自分类Dev

从第二个项目调用视图

来自分类Dev

从第二个项目调用视图

来自分类Dev

排序后无法保留第二个属性

来自分类Dev

激活第二个网卡时无法ping

来自分类Dev

无法加载第二个控制器

Related 相关文章

  1. 1

    在第二个屏幕上放置WPF ContextMenu

  2. 2

    WPF 在一个 ListBox 中选择项目并在第二个 ListBox 中显示相应的列表

  3. 3

    如何在WPF的第二个屏幕中启动第二个应用程序?

  4. 4

    WPF-从第二个窗口返回第一个窗口

  5. 5

    如何在WPF中向第二个实体添加CRUD操作

  6. 6

    Windows 10中的第二个屏幕上的WPF窗口对象被涂黑

  7. 7

    WPF禁用主窗口,而第二个窗口打开直到关闭

  8. 8

    关闭在MainWindow WPF中创建的第二个窗口

  9. 9

    WPF ComboBox选择导致在第二个ComboBox中进行选择

  10. 10

    方法运行时打开第二个窗口-WPF

  11. 11

    WPF LiveCharts 样式:多个图表导致第二个图表出错

  12. 12

    WPF-在第一个组合框选择上启用第二个组合框

  13. 13

    WPF:从XAML设置ViewModel,为什么第二个解决方案不起作用?

  14. 14

    需要基于第二个ComboBox的SelectedValue设置WPF MVVM ComboBox ItemsSource的简单工作示例

  15. 15

    主窗口上的文本框必须更改 wpf 中第二个窗口上的标签内容

  16. 16

    在App.xaml.cs的OnStartup中关闭第一个窗口后,再打开C#WPF第二个窗口

  17. 17

    Java Socket Server无法处理第二个客户端

  18. 18

    无法向Spring Data Starter项目添加第二个实体

  19. 19

    项目中的第二个servlet无法正常工作

  20. 20

    无法将第二个模板加载到我的Django项目中

  21. 21

    strtok()不处理第二个令牌

  22. 22

    strtok()不处理第二个令牌

  23. 23

    批处理中的第二个命令

  24. 24

    第二个INSERT INTO未处理

  25. 25

    从第二个项目调用视图

  26. 26

    从第二个项目调用视图

  27. 27

    排序后无法保留第二个属性

  28. 28

    激活第二个网卡时无法ping

  29. 29

    无法加载第二个控制器

热门标签

归档