首页 > 解决方案 > 为 WPF 日历使用大字体和按钮

问题描述

我需要为 WPF 日历的日期数字、月份、星期几标题和上一个/下一个按钮提供大字体。这是一个没有鼠标的触摸屏应用程序。

做这个的绝对简单的最小 xaml 代码是什么?我不想要漂亮或聪明。我只想要大字体。大到足以让机械师找到并按下一个肮脏、多尘、涂有油脂的屏幕。

我尝试过的一件事如下。那没有用。我不明白,也不想。我没有时间去追查所有这些模板样式混搭。老实说,我所追求的只是有人做饭然后给我。我的时间不多了,我只想把这东西放在我的后视镜中。

Style  TargetType="{x:Type Calendar}">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type Calendar}">
                    <CalendarItem x:Name="PART_CalendarItem"
                              Background="{TemplateBinding Background}"
                              BorderBrush="{TemplateBinding BorderBrush}"
                              BorderThickness="{TemplateBinding BorderThickness}"/>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsFocused" Value="true">
                            <Setter TargetName="PART_CalendarItem" Property="Padding"  Value="0,0,0,0" />
                            <Setter TargetName="PART_CalendarItem"  Property="Background"   Value="Yellow" />
                        </Trigger>

                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

标签: wpfcalendar

解决方案


我没有看到您在提供的 XAML 中更改 FontSize,但无论如何。我刚试过,看起来默认模板无论如何都会忽略它。可能最好的方法是重新定义模板,但我同意,这可能是很多初始工作。我也很同情...

因此,如果您只需要使控件更大,那么一个简单的方法就是向 LayoutTransform 添加一个 Scale。例如,要将大小加倍,请尝试:

<Style TargetType="{x:Type Calendar}">
    <Setter Property="LayoutTransform">
        <Setter.Value>
            <TransformGroup>
                <ScaleTransform ScaleX="2" ScaleY="2"/>
                <SkewTransform/>
                <RotateTransform/>
                <TranslateTransform/>
            </TransformGroup>
        </Setter.Value>
    </Setter>
</Style>

推荐阅读