3

我想知道我应该如何为所有配色方案等创建自定义设置。我知道我可以为单个组件或零件创建样式..但是我应该如何创建一组皮肤?

例如,现在我在很多子控件中使用栗色渐变画笔。但是,我敢肯定,除了我之外的人会讨厌配色方案。

我知道我可以在我的顶级控件上为颜色创建一个依赖属性,然后将需要该颜色的各个部分绑定到该依赖属性。但是,将需要许多属性。我应该只创建一个包含所有这些属性的单独样式对象并将其作为字段放在我的用户控件中吗?

我只是想知道在 WPF 中是否还有其他方法可以做到这一点。例如,我想可能有一些方法可以在 xaml 中执行此操作,或者使用默认库中的一些内置类。

4

1 回答 1

2

您可以通过创建新的资源字典并在那里为您的控件定义颜色和控件模板来做到这一点。

您可以在WPF 主题项目(下载链接)中找到示例。

您可以通过更改资源字典来更改样式,例如:

<Application x:Class="ThemesSample.App"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    StartupUri="Window1.xaml">
    <Application.Resources>
        <ResourceDictionary Source="ExpressionDark.xaml"/>
    </Application.Resources>
</Application>

如果要在运行时更改主题,则应使用以下代码:

ResourceDictionary dict = new ResourceDictionary();
dict.Source = new Uri("BureauBlack.xaml", UriKind.Relative);
this.Resources.MergedDictionaries.Add(dict);
于 2013-08-03T21:43:16.193 回答