有没有一种方法可以水平拉伸WPF日历控件?该控件允许我设置HorizontalAlignment =“Stretch”,但这与将属性设置为“Center”的效果相同。它改变了控件的宽度,但显示的日历仍然保持在控件的中心位置。我想将显示的日历拉伸到控件的边缘。
我记得可以使用ViewPort来完成,但我找不到任何显示如何完成此操作的内容。感谢您的帮助。
我记得可以使用ViewPort来完成,但我找不到任何显示如何完成此操作的内容。感谢您的帮助。
我想你可能正在寻找Viewbox:
定义了一个内容装饰器,可以拉伸和缩放单个子元素以填充可用空间。
如果将日历设置为Viewbox的子元素,则会应用ScaleTransform以使其占用所有可用空间。
<Viewbox>
<Calendar/>
</Viewbox>
我也遇到了同样的问题,但我在别处找到了不完整的答案,所以我会把它留在这里供将来参考,毕竟这是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 CalendarStyle="{StaticResource styleCalendar}"/>
注意我只在ViewBox中指定了高度,因为(据我所读)ViewBox会均匀地拉伸,因此它将采用两个尺寸中最小的尺寸。