c# - 日历样式不影响 DatePicker 日历
问题描述
我添加了以下样式资源来自定义我的 DatePicker 日历的外观。日历也受到影响,但不是 DatePicker 的日历。见附图。
<Style TargetType="{x:Type Calendar}">
<Setter Property="Foreground" Value="#FF333333"/>
<Setter Property="Background">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="Orange" Offset="0"/>
<GradientStop Color="Orange" Offset="0.16"/>
<GradientStop Color="White" Offset="0.16"/>
<GradientStop Color="White" Offset="0.4"/>
</LinearGradientBrush>
</Setter.Value>
</Setter>
<Setter Property="BorderBrush">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="Orange" Offset="0"/>
<GradientStop Color="Orange" Offset="0.375"/>
<GradientStop Color="Orange" Offset="0.375"/>
<GradientStop Color="Orange" Offset="1"/>
</LinearGradientBrush>
</Setter.Value>
</Setter>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Calendar}">
<StackPanel x:Name="PART_Root" HorizontalAlignment="Center">
<CalendarItem x:Name="PART_CalendarItem" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Style="{TemplateBinding CalendarItemStyle}"/>
</StackPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
解决方案
在查看原始默认值Style
时,DatePicker
您会看到Style
forCalendar
被显式分配给 dedicated DatePicker.CalendarStyle
。这是有道理的,因为其目的是将 限制Style
为Calendar
的DatePicker
。它通常不适用于Calendar
控制。
所以你必须覆盖显式的 default Style
。
鉴于您的隐式Style
在 范围内DatePicker
,您只需设置DatePicker.CalendarStyle
属性以引用它:
<DatePicker CalendarStyle="{StaticResource {x:Type Calendar}}" />
推荐阅读
- python - Dask groupby 在每列上分别给出错误的结果
- java - 查询仅在其子项不为空时返回实体
- r - 有没有办法生成 rmarkdown 文档的缓存版本,然后直接从缓存中生成多个输出?
- java - 如何在 JAVA 中将 Pair 转换为二维数组?
- gcc - 如何在 UBUNTU 上配置 Visual Studio Code 以编译 gstreamer 文件
- xpath - SoapUI 中的查询匹配不适用于正确的 Xpath
- c# - Lambda 表达式中的条件
- javascript - Angular RxJs Observable 避免请求,直到我得到先前的响应
- javascript - 使用增量内部循环不会返回预期结果
- reactjs - AWS 中的 403 OPTIONS Cors 错误,预检请求