在 WPF 中更改 Material Design DatePicker 的外观

Posted

技术标签:

【中文标题】在 WPF 中更改 Material Design DatePicker 的外观【英文标题】:Change the appearence of the MaterialDesign DatePicker in WPF 【发布时间】:2021-08-30 16:53:46 【问题描述】:

我正在使用 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>

先谢谢你:)

【问题讨论】:

【参考方案1】:

是否可以编辑 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>

【讨论】:

谢谢兄弟!现在我明白了如何实现这个样式表了。 那么,如果我还想更改文本框中图标的颜色,我是否要实现图标所在的样式? @AsNodt:类似的东西。

以上是关于在 WPF 中更改 Material Design DatePicker 的外观的主要内容,如果未能解决你的问题,请参考以下文章

对话框 XAML 和 Material Design WPF

开发Google Material Design风格的WPF程序

WPF Material Design 凸起的按钮悬停状态

Material Design (WPF):禁用复选框动画

如何在 Angular Material Design 中更改 Sidenav 的宽度?

如何更改 Material Design ActionBar 的文本?