WPF日期选择器日历样式错误
我正在开发一个WPF应用程序,我正在使用标准的WPF日期选择器 以下是XAML代码:WPF日期选择器日历样式错误,wpf,xaml,datepicker,Wpf,Xaml,Datepicker,我正在开发一个WPF应用程序,我正在使用标准的WPF日期选择器 以下是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}" /> 但是,当我使用它时,日
<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>
如何更新日历标题的高度?如果为CalendarItem生成样式,则会发现标题按钮的高度为20,字体大小为10.5。因此,您可以覆盖
日历项
样式,并定义零件头模板
的高度或减小字体大小
<Button x:Name="PART_PreviousButton" Grid.Column="0" Focusable="False" HorizontalAlignment="Left" Height="20" Grid.Row="0" Template="{StaticResource PreviousButtonTemplate}" Width="28"/>
<Button x:Name="PART_HeaderButton" Grid.Column="1" FontWeight="Bold" Focusable="False" FontSize="10.5" HorizontalAlignment="Center" Grid.Row="0" Template="{StaticResource HeaderButtonTemplate}" VerticalAlignment="Center"/>
<Button x:Name="PART_NextButton" Grid.Column="2" Focusable="False" HorizontalAlignment="Right" Height="20" Grid.Row="0" Template="{StaticResource NextButtonTemplate}" Width="28"/>
您使用的主题是什么?尝试通过Blend生成datepicker主题的副本,并根据区域性显示在日历中应用控件的高度。@user1672994主题是什么意思?我使用的是标准的WPF日期选择器。我的意思是说模板。@user1672994我没有使用任何模板。然后通过混合和更新日历中控件的高度来为日期选择器生成模板。这里的问题是,对于某些特定于区域性的文本,datepicker标签不会在模板中显示默认高度的文本。在操作系统上,有时也会有所不同。如何为CalendarItem生成样式?您可以通过Blend生成。右键单击datepicker,然后单击GenerateAdditionalTemplate。我尝试了,我只能选择CalendarStyle和FocusVisualStyle。好的,我找到了方法。谢谢你的帮助。