DatePicker中的日历控件切断了HeaderButton?

时间:2017-02-16 17:04:33

标签: wpf xaml

我的DatePicker上的日历正在切断CalendarHeaderButton,因此无法读取。我已经尝试删除我的XAML样式并使用标准日历,问题仍然存在。有人知道如何纠正这个问题吗?对不起,如果这是重复的,我花了很长时间搜索!

Calendar Header Missing

到目前为止,这是我的Xaml:

<Style x:Key="{x:Type Calendar}" TargetType="{x:Type Calendar}">
        <Setter Property="Background" Value="{StaticResource Back75}"/>
        <Setter Property="Foreground" Value="{StaticResource Text100}"/>

        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type Calendar}">
                    <!-- Wrapping in ViewBox will enlarge calendar of that size.-->
                    <Viewbox Height="200"
                         Width="200">
                        <CalendarItem x:Name="PART_CalendarItem"
                                  Background="{TemplateBinding Background}"
                                  BorderBrush="{TemplateBinding BorderBrush}"
                                  BorderThickness="{TemplateBinding BorderThickness}"/>
                    </Viewbox>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

感谢任何帮助。谢谢!

2 个答案:

答案 0 :(得分:1)

我尝试了你的风格,它本身运作良好,它必须来自其他地方。您是否尝试在主窗口中仅使用日历的新项目中使用您的样式?

如果您需要进一步的帮助,您应该发布导致问题的最小代码。

在旁注中,我想知道为什么你将CalendarItem包装在样式的ViewBox中,而不是在你使用它的地方将日历包装在ViewBox中。
为什么你要设置你的尺寸ViewBox硬编码为200-200。

答案 1 :(得分:1)

我找到了这个问题的原因。事实证明'HeaderButton'使用'Button'。我在'按钮'上有一个默认样式,它将高度设置为'20',它需要为'25'。我手动更改了这个“CalendarItem”样式,它将按钮的高度硬编码为25。