gpt4 book ai didi

xaml - 在代码中设置或修改 ThemeResource

转载 作者:行者123 更新时间:2023-12-04 11:36:06 30 4
gpt4 key购买 nike

我的问题非常具体到 Windows 10 应用商店应用程序中的 ThemeResources。不幸的是,“经典” WPF 中可用的一些东西在这里不同或不可用。

我试图为许多 ui 元素实现的目标:

  • 允许用户使用系统的强调色(在 XAML 中这将是 {ThemeResource SystemAccentColor} 作为值。)
  • 允许用户改用自定义/固定颜色。 (我可以覆盖资源字典中的 SystemAccentColor 键)
  • 允许在运行时在系统重音和自定义颜色之间切换(我可以绑定(bind)颜色而不是使用资源)

  • 但是我还没有找到一个好的解决方案来实现这一切。如果我有自己的具有自定义颜色的资源字典,当用户想要切换回系统的强调色时,我不会摆脱它。
    使用我绑定(bind)的属性有一个缺点,如果用户在应用程序运行时更改系统设置中的强调色 - 使用 {ThemeResource}标记它。

    任何想法如何正确完成这项工作?
    如果可以设置 ThemeResource从代码中我可以为此编写一些行为,但它似乎不可用。

    最佳答案

    有一种方法可以设置ThemeResource在代码中...我仅在 W10 Creators Update 上对其进行了测试,因此它可能不适用于旧版本,但您可以创建自己的资源来引用原始 ThemeResource你想使用然后使用这个资源:

    XAML:

    <SolidColorBrush x:Key="MyBorderBrush" Color="{ThemeResource SystemAccentColor}"/>

    C#:
    element.BorderBrush = (SolidColorBrush)Resources["MyBorderBrush"];
    element的边框颜色将与 Windows 设置中选择的强调色相同,即使您的应用程序正在运行并且用户更改了它,它也会发生变化。

    关于xaml - 在代码中设置或修改 ThemeResource,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33356217/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com