更改 WPF 中 MaterialDesign DatePicker 的外观

问题描述

我正在使用 WPF

是否可以编辑 DatePicker 的整个模板? 我想更改一些颜色,但找不到此属性的位置

我已经尝试使用下一个代码,但它只更改了日期显示的容器,而且我还想更改文本框、悬停日等的颜色。

<DatePicker>
            <DatePicker.CalendarStyle>
                <Style targettype="Calendar" BasedOn="{StaticResource MaterialDesignCalendarPortrait}">
                    <Style.Resources>
                        <SolidColorBrush x:Key="PrimaryHueMidBrush" Color="#373A6B" />
                    </Style.Resources>
                </Style>
            </DatePicker.CalendarStyle>
        </DatePicker>

DatePicker

DatePicker W/style

先谢谢你:)

How can I change the colors?

解决方法

是否可以编辑 DatePicker 的整个模板?

当然。您可以将 original one 复制到您的 XAML 标记中并根据您的要求进行编辑。

查看模板的定义方式,您会发现它们引用了您可以覆盖的资源。例如,鼠标悬停画笔由 PrimaryHueDarkBrush:

定义
<DatePicker>
    <DatePicker.CalendarStyle>
        <Style TargetType="Calendar" BasedOn="{StaticResource MaterialDesignCalendarPortrait}">
            <Style.Resources>
                <SolidColorBrush x:Key="PrimaryHueMidBrush" Color="Red" />
                <SolidColorBrush x:Key="PrimaryHueDarkBrush" Color="Green" />
            </Style.Resources>
        </Style>
    </DatePicker.CalendarStyle>
</DatePicker>