c# - Wpf 自定义 DatePicker 日历和 CalendarDayButton
问题描述
我正在 WPF 应用程序中自定义 DatePicker 控件,目标是使其对触摸屏友好。
我对 WPF 本身并不熟悉,但是通过几个教程我已经能够让它变得更大,我创建了一个用于自定义 DatePicker 本身的模板,并在后面的代码中添加了几个控件来限制日期范围等等。
当我尝试更改“BlackoutDates”背景时,我只是卡住了:
根据 UX 指南,我必须将“X”颜色从灰色更改为红色。
日期选择器本身看起来不错,日历没有:
<DatePicker Style="{StaticResource MyDatePickerStyle}" CalendarStyle="{StaticResource styleCalendar}" Height="60" HorizontalAlignment="Center" Name="datePicker1" VerticalAlignment="Center" Width="400">
<DatePicker.BlackoutDates>
<CalendarDateRange End="6/19/2019" />
<CalendarDateRange Start="6/28/2019" />
</DatePicker.BlackoutDates>
</DatePicker>
这是我的模板,我获得的唯一效果是使日历更大:
<Style x:Key="styleCalendar" TargetType="{x:Type Calendar}">
<Setter Property="CalendarDayButtonStyle" Value="{StaticResource
styleCalendarButton}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Calendar}">
<Viewbox Height="400" Width="400">
<CalendarItem x:Name="PART_CalendarItem"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"/>
</Viewbox>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="styleCalendarButton" TargetType="CalendarDayButton" BasedOn="{StaticResource {x:Type CalendarDayButton}}">
<Style.Triggers>
<Trigger Property="IsBlackedOut" Value="True">
<Setter Property="Background" Value="Red"/>
</Trigger>
</Style.Triggers>
</Style>
我搜索了几个示例,但似乎我无法轻松自定义 CalendarItem 及其按钮。
问题是:如何更改停电日背景上的“X”颜色?
解决方案
推荐阅读
- jquery - 表单上的多个日期选择器
- android - Debug 似乎没有显示 AndroidManifest 图标
- java - Android:如何同时打开多个USB端口
- visual-studio-2015 - 尝试使用 MsBuild 构建时,我们无法恢复解决方案中使用的 nuget 包
- python - Python zip 函数使用
- c# - 如何在 c# 中的 @Model.Value 中包含 id 和 name 属性?
- swift - 如何在 CollectionView 单元内向图像添加渐变层
- prediction - 预测和时间序列
- salesforce-lightning - 防止在 LWC 上重新定位事件
- android - Firebase 远程配置服务器值与默认值相同吗?