【发布时间】:2015-11-03 14:46:35
【问题描述】:
我正在开发一个 WPF 应用程序并且我正在使用标准的 WPF Datepicker。
这是 XAML 代码:
<DatePicker Grid.Column="0" Grid.Row="5" Margin="5,0,5,12"
x:Name="SendungDatePicker" SelectedDate="{Binding Path=ProduktionsDatum}"
ToolTip="{x:Static resx:MetaData.DateTooltip}" />
但是,当我使用它时,日历的上半部分显示不正确:
如你所见,我看不到月份和年份。
我该如何解决这个问题?
感谢您的帮助
编辑
我为日历样式生成了一个模板:
<Style x:Key="CalendarStyle1" TargetType="{x:Type Calendar}">
<Setter Property="Foreground" Value="#FF333333"/>
<Setter Property="Background">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FFE4EAF0" Offset="0"/>
<GradientStop Color="#FFECF0F4" Offset="0.16"/>
<GradientStop Color="#FFFCFCFD" Offset="0.16"/>
<GradientStop Color="White" Offset="1"/>
</LinearGradientBrush>
</Setter.Value>
</Setter>
<Setter Property="BorderBrush">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FFA3AEB9" Offset="0"/>
<GradientStop Color="#FF8399A9" Offset="0.375"/>
<GradientStop Color="#FF718597" Offset="0.375"/>
<GradientStop Color="#FF617584" Offset="1"/>
</LinearGradientBrush>
</Setter.Value>
</Setter>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Calendar}">
<StackPanel x:Name="PART_Root" HorizontalAlignment="Center">
<CalendarItem x:Name="PART_CalendarItem" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Style="{TemplateBinding CalendarItemStyle}" Height="Auto" Width="Auto"/>
</StackPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
如何更新日历表头的高度?
【问题讨论】:
-
您使用的主题是什么?尝试通过 Blend 生成 datepicker 主题的副本,根据您的文化显示应用日历内的控件高度。
-
@user1672994 主题是什么意思?我正在使用标准的 WPF DatePicker。
-
我是说模板。
-
@user1672994 我没有使用任何模板
-
然后通过Blend生成datepicker的模板,更新日历内部控件的高度。这里的问题是对于某些特定于文化的文本,日期选择器标签不显示模板中默认高度的文本。有时也会因操作系统而异。
标签: wpf xaml datepicker