DatePicker样式切断

时间:2011-02-17 07:21:37

标签: wpf datepicker

我已将以下样式应用于DatePicker的CalendarStyle属性:

    <Style x:Key="myStyle" TargetType="Calendar" >
        <Setter Property="Height" Value="Auto" />
        <Setter Property="Width" Value="Auto" />
        <Setter Property="RenderTransform">
            <Setter.Value>
                <TransformGroup>
                    <ScaleTransform ScaleX="1.5" ScaleY="1.5"/>
                    </TransformGroup>
                    </Setter.Value>
                    </Setter>
    </Style>

但是打开的日历是从右侧切断的。有什么想法吗?

3 个答案:

答案 0 :(得分:2)

试试这个:

<Style x:Key="myStyle" TargetType="Calendar" >
    <Setter Property="Height" Value="Auto" />
    <Setter Property="Width" Value="Auto" />
    <Setter Property="LayoutTransform">
        <Setter.Value>
            <TransformGroup>
                <ScaleTransform ScaleX="1.5" ScaleY="1.5"/>
            </TransformGroup>
        </Setter.Value>
    </Setter>
</Style>

答案 1 :(得分:1)

我打算对此进行猜测,但我并不完全确定。

我的猜测是,日历包含在网格或画布或其他容器中,自然填充容器或者尺寸非常接近。当您应用将日历缩放1.5的RenderTransform时,容器的大小仍然相同,但日历现在大1.5倍,因此超出了容器的大小。

建议的解决方案:

  1. 也改造容器;或
  2. 更改您的设置,以便日历只是在没有RenderTransform的情况下填充容器;或
  3. 您还可以将日历放在ScrollView中,以便日历可以根据需要大小 - 您可以随时滚动查看所需的部分。

答案 2 :(得分:1)

我能够通过修改日历模板并将其包装在ViewBox中,成功地在DatePicker中重新调整日历大小。这样,日历将获取ViewBox提供的大小。 我在这里的博客文章中提供了解决方案: Re-sizing Calendar in DatePicker

希望它有所帮助。 :)