WPF自定义DatePicker日历和CalendarDayButton

时间:2019-06-21 10:30:23

标签: c# wpf button datepicker calendar

我正在WPF应用程序中自定义DatePicker控件,目标是使其易于触摸屏。

我对WPF本身不熟悉,但是在一些教程中,我已经能够使它变得更大,我创建了一个用于自定义DatePicker本身的模板,并在后面的代码中添加了一些控件来限制日期范围和等等。

当我尝试更改“ BlackoutDates”背景时,我只是被卡住了: Calendar example

根据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”颜色?

0 个答案:

没有答案