DatePicker 中 Date 的垂直对齐方式
Vertical alignment of Date in DatePicker
我在 WPF 中使用 DatePicker,并希望将文本垂直对齐到 DatePicker 的中心。
除了自己编写 DatePicker 之外,还有什么方法可以做到这一点吗?
提前致谢。
编辑:
我个人认为,如果将字体大小保持为 12 并对 DatePickers LayoutTransform 应用缩放,则效果会更好,而我的第二个选择是将整个内容模板化。不过,要回答您的问题,一个快速简便的解决方案是在父 window/control 的构造函数中添加一个 Loaded
处理程序:
public MainWindow()
{
InitializeComponent();
theDatePicker.Loaded += TheDatePicker_Loaded;
}
然后在处理程序中覆盖按钮的垂直对齐方式:
private void TheDatePicker_Loaded(object sender, RoutedEventArgs e)
{
var button = theDatePicker.Template.FindName("PART_Button", theDatePicker) as Button;
button.VerticalAlignment = VerticalAlignment.Center;
}
在 XAML 中尝试将样式添加到 DatePicker
的 DatePickerTextBox
它应该可以工作。
<DatePicker Width="200" VerticalAlignment="Center" Height="45" Background="White"
FontSize="8" VerticalContentAlignment="Center">
<DatePicker.Resources>
<Style TargetType="DatePickerTextBox">
<Setter Property="VerticalAlignment" Value="Center" />
</Style>
</DatePicker.Resources>
</DatePicker>
我在 WPF 中使用 DatePicker,并希望将文本垂直对齐到 DatePicker 的中心。
除了自己编写 DatePicker 之外,还有什么方法可以做到这一点吗? 提前致谢。
编辑:
我个人认为,如果将字体大小保持为 12 并对 DatePickers LayoutTransform 应用缩放,则效果会更好,而我的第二个选择是将整个内容模板化。不过,要回答您的问题,一个快速简便的解决方案是在父 window/control 的构造函数中添加一个 Loaded
处理程序:
public MainWindow()
{
InitializeComponent();
theDatePicker.Loaded += TheDatePicker_Loaded;
}
然后在处理程序中覆盖按钮的垂直对齐方式:
private void TheDatePicker_Loaded(object sender, RoutedEventArgs e)
{
var button = theDatePicker.Template.FindName("PART_Button", theDatePicker) as Button;
button.VerticalAlignment = VerticalAlignment.Center;
}
在 XAML 中尝试将样式添加到 DatePicker
的 DatePickerTextBox
它应该可以工作。
<DatePicker Width="200" VerticalAlignment="Center" Height="45" Background="White"
FontSize="8" VerticalContentAlignment="Center">
<DatePicker.Resources>
<Style TargetType="DatePickerTextBox">
<Setter Property="VerticalAlignment" Value="Center" />
</Style>
</DatePicker.Resources>
</DatePicker>