如何在WPF中为GUI创建外观?

时间:2013-08-03 21:21:03

标签: c# wpf xaml skins

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

例如,现在我在很多次控制中使用栗色渐变画笔。但是,我确信除了我以外的人都会讨厌配色方案。

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

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

1 个答案:

答案 0 :(得分:2)

您可以通过创建新资源字典并为控件定义颜色和控件模板来实现此目的。

您可以在WPF Themes项目(download link)中找到示例。

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

<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);