2011-02-17 27 views
0

我已将下列风格的DatePicker的CalendarStyle属性:开辟了DatePicker的风格切断

<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> 

但日历是从右边切断。任何想法为什么?

+0

能否请你添加一些新线路,使标记更容易阅读?此外,这将有助于看到更多的XAML,因此我们可以看到日历将包含在什么中。 – 2011-02-17 07:24:11

回答

1

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

希望它有帮助。 :)

1

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

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

提出的解决方案:

  1. 变换所述容器为好;或
  2. 更改您的设置,以便日历仅填充容器而不使用RenderTransform;或
  3. 您还可以将日历放置在ScrollView中,以便日历可以尽可能大 - 您可以随时滚动以查看所需的部分。
+0

是的,这是事实。它在网格内。这有点乏味。我只想增加日历的大小,并且需要转换两个控件。必须有其他方式:/ – neebz 2011-02-17 07:54:24

+0

您可以尝试一下 除了你的高度和宽度利用数据绑定来找出真值吗? – 2011-02-17 08:20:44

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>