Вертикальное выравнивание даты в DatePicker - PullRequest
1 голос
/ 06 апреля 2020

Я использую DatePicker в WPF и хотел бы выровнять текст по центру DatePicker по вертикали.

Есть ли способ сделать это, кроме написания моего собственного DatePicker? Заранее спасибо.

Редактировать: To visualize my poblem:

Ответы [ 2 ]

0 голосов
/ 06 апреля 2020

Попробуйте это в стиле добавления XAML к DatePickerTextBox из DatePicker, это должно работать.

<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>
0 голосов
/ 06 апреля 2020

Лично я думаю, что выглядит лучше, если вы сохраняете размер шрифта равным 12 и применяете масштаб к DatePickers LayoutTransform, в то время как мой второй выбор будет заключаться в создании шаблона целиком. Чтобы ответить на ваш вопрос, быстрое и простое решение - добавить обработчик 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;
}
...