我正在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”颜色?