有没有办法水平拉伸WPF日历控件?该控件将让我设置HorizontalAlignment =“Stretch”,但这与将属性设置为“Center”具有相同的效果。它会更改控件的宽度,但显示的日历在控件的中心保持相同的大小。我想将显示的日历拉伸到控件的边缘。
我似乎记得可以使用ViewPort完成,但我找不到任何显示如何操作的内容。谢谢你的帮助。
答案 0 :(得分:26)
我想你可能在寻找Viewbox:
定义可以的内容装饰器 伸展和缩放一个孩子 填补可用空间。
如果您将日历作为Viewbox的子项,它将应用ScaleTransform以占用所有可用空间。
<Viewbox>
<Calendar/>
</Viewbox>
答案 1 :(得分:3)
我也遇到了同样的问题,但我在其他地方找到了答案,但是我将把它留在这里以备将来参考,毕竟这是7年前发布的!
在我的情况下,我想调整DatePicker控件显示的日历大小。
为日历创建样式:
<Style x:Key="styleCalendar" TargetType="{x:Type Calendar}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Calendar}">
<!-- Wrapping in ViewBox will enlarge calendar of that size.-->
<Viewbox Height="300">
<CalendarItem x:Name="PART_CalendarItem"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"/>
</Viewbox>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
然后只需在DatePicker中调用它:
<DatePicker CalendarStyle="{StaticResource styleCalendar}"/>
注意我只是特定于Viewbox中的高度,这是因为(从我读到的)ViewBox均匀拉伸,因此它将占据两个维度中的最小值。