Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WPF日期选择器日历样式错误_Wpf_Xaml_Datepicker - Fatal编程技术网

WPF日期选择器日历样式错误

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}" /> 但是,当我使用它时,日

我正在开发一个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}" />

但是,当我使用它时,日历的上半部分没有正确显示:

正如你所看到的,我看不到月份和年份

我怎样才能解决这个问题

谢谢你的帮助

编辑

我为日历样式生成了一个模板:

<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。好的,我找到了方法。谢谢你的帮助。