gpt4 book ai didi

基于 SystemColors 的 WPF 通用颜色

转载 作者:行者123 更新时间:2023-12-05 01:15:04 26 4
gpt4 key购买 nike

我需要在我的应用程序中使用一些通用颜色,这些颜色基于系统颜色,这些颜色根据事件主题而变化。所以我相信我需要一些 IValueConverters,每个 IValueConverters 在给定系统颜色画笔时返回一个画笔。

但是我应该把逻辑放在哪里呢?在我看来,我可能有 2 个选择。

选项 1) 将 SolidColorBrush(es) 放在主题资源字典中,它绑定(bind)到一些系统颜色并将它们转换为新的 Brush(es)。这我已经尝试过并且似乎有效,但是我如何从代码隐藏中引用这些新的 SolidColorBrush(es)。

选项 2) 创建一个类似于 SystemColors 类的类。我不太清楚我是怎么做到的。 SystemColors类中的SystemResourceKey和Brush是什么关系?它们是如何连接的?

最好的问候,杰斯珀

最佳答案

1. 例如

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:Test">
<SolidColorBrush x:Key="Brush1" Color="Green"/>
</ResourceDictionary>
ResourceDictionary dict = new ResourceDictionary();
dict.Source = new Uri("pack://application:,,,/TestDictionary.xaml");
Brush brush1 = dict["Brush1"] as SolidColorBrush;

2. 您不能使用 SystemResourceKeys,它们是内部的,但可能会重用 SystemColors 类中的键来构建您的字典,您使用什么并不重要使用,键可以是任何对象,this question可能会感兴趣。

关于基于 SystemColors 的 WPF 通用颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2544187/

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