2015-04-01 143 views
6

我使用的定义是这样的我的应用程序一个datepicker:WPF:DatePicker的文本垂直居中

<DatePicker Width="200" 
      Margin="20, 20, 20, 0" 
      SelectedDate="{Binding PeriodEndDate, Mode=TwoWay}" /> 

下面是日期选取器显示:

enter image description here

我怎样才能得到日期(4/22/2015)在文本框中垂直居中(日期周围的虚线是实际的文本框边界)?

我已经尝试将VerticalContentAlignmentVerticalAlignment设置为Center,但这不会影响日期居中。

如果我使用Snoops挖掘日期选择器,我可以在DatePicker内看到一个名为PART_TextBox的元素。如果我将此PART_TextBoxVerticalContentAlignment更改为Center,文本将居中(默认设置为Stretch)。但是,我不知道如何访问这个子组件来改变它VerticalContentAlignment

+0

[http://stackoverflow.com/questions/1530640/centering-datepicker-control](http://stackoverflow.com/questions/1530640/centering-datepicker-control)这可以通过定义处理一种风格。 – EMAW2008 2015-12-11 16:08:22

回答

0

我猜这是你的字体大小的产物。尝试。

<DatePicker Width="200" 
      FontSize="8" 
      Margin="20, 20, 20, 0" 
      SelectedDate="{Binding PeriodEndDate, Mode=TwoWay}" > 

    <DatePicker.Resources> 
     <Style TargetType="DatePickerTextBox"> 
      <Setter Property="VerticalAlignment" Value="Center" /> 
     </Style> 
    </DatePicker.Resources> 

</DatePicker>