C#并定义共同主题

时间:2016-03-13 23:42:04

标签: c# css xaml colors themes

我在Visual Studio 2013中有一个Windows窗体应用程序,C#语言,我想定义类似CSS文件的内容,这是为Web应用程序定义的,但是对于我的应用程序。 因此,我希望有一个应用程序,当我运行应用程序时,所有的表单和按钮将具有相同的颜色,并从公共文件获得他们的样式。 可能吗?如果是的话,我该怎么做?  提前谢谢

1 个答案:

答案 0 :(得分:0)

<强>的WinForm: 对于winForm应用程序,您应该从头开始创建自己的自定义控件或从现有控件派生。可能有人已经完成了它,比如DevExpress。 如果您不打算购买任何东西,我建议使用WPF。

<强> WPF: 为了制作主题,您必须为ResourceDictionary制作一个Styles列表,以用于不同的控件。

因此,创建一个新的ResourceDictionary,为特定控件实现许多样式。 例如,RepeatButton

的样式
<Style x:Key="TestStyle" d:IsControlPart="True" TargetType="{x:Type RepeatButton}">
    <Setter Property="Background" Value="Transparent" />
    <Setter Property="BorderBrush" Value="Transparent" />
    <Setter Property="IsTabStop" Value="false" />
    <Setter Property="Focusable" Value="false" />
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type RepeatButton}">
                <Grid>
                    <Rectangle Fill="{TemplateBinding Background}" Stroke="{TemplateBinding BorderBrush}" StrokeThickness="{TemplateBinding BorderThickness}" />
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

然后在您的应用程序中添加对ResourceDictionary的引用。

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

您可以找到一些示例here