Wpf 水平拉伸日历?
有没有办法水平拉伸WPF日历控件?控件将允许我设置HorizontalAlignment=“Stretch”,但这与将属性设置为“Center”具有相同的效果。它更改控件的宽度,但显示的日历在控件中心保持相同的大小。我想将显示的日历拉伸到控件的边缘Wpf 水平拉伸日历?,wpf,wpf-controls,calendar,Wpf,Wpf Controls,Calendar,有没有办法水平拉伸WPF日历控件?控件将允许我设置HorizontalAlignment=“Stretch”,但这与将属性设置为“Center”具有相同的效果。它更改控件的宽度,但显示的日历在控件中心保持相同的大小。我想将显示的日历拉伸到控件的边缘 我似乎记得它可以用一个视口来完成,但我找不到任何显示如何完成的东西。谢谢您的帮助。我想您可能正在寻找: 定义一个可以 将单个孩子拉伸并缩放到 填满可用的空间 如果将日历设置为Viewbox的子项,它将应用ScaleTransform以占用所有可用空间
我似乎记得它可以用一个视口来完成,但我找不到任何显示如何完成的东西。谢谢您的帮助。我想您可能正在寻找: 定义一个可以 将单个孩子拉伸并缩放到 填满可用的空间 如果将日历设置为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中调用它:
<DatePicker CalendarStyle="{StaticResource styleCalendar}"/>
请注意,我只对Viewbox中的高度进行了详细说明,这是因为(据我所知)Viewbox拉伸均匀,因此它将采用两个维度中最小的一个。谢谢!注意:对于其他用户,Viewbox可以水平和垂直拉伸。它不能只向一个方向拉伸,例如水平拉伸。