无法在WPF日历

时间:2015-04-30 20:38:23

标签: c# .net wpf xaml

我试图将Calendar控件扩展为我自己的控件,它具有一些依赖属性,用于设置悬停颜色,当天高亮显示等内容。我已经获得了所有属性并使用绑定将它们连接起来,但由于某种原因,为星期几标题显示的文本不会更改其字体颜色或样式。起初我认为这是我的绑定因为我使用了RelativeSource并找到了祖先类型,但我尝试在DataTemplate中显式设置它们但没有任何效果。

这是日历库中的继承问题吗?或者内部有什么东西会覆盖我的模板?这是CalendarItem的DataTemplate:

<DataTemplate x:Key="{x:Static CalendarItem.DayTitleTemplateResourceKey}">
      <TextBlock Foreground="Red"
                 FontWeight="Bold"
                 FontSize="{Binding FontSize, RelativeSource={RelativeSource AncestorType=local:CalendarControl}}"
                 FontFamily="Arial"
                 HorizontalAlignment="Center"
                 Margin="0,6,0,6"
                 Text="{Binding}"
                 VerticalAlignment="Center" />
</DataTemplate>

从这里我理解它的方式,这个DataTemplate用于动态生成这些项目,然后插入到&#34; PART_MonthView&#34;网格如下:

<Grid x:Name="PART_MonthView"
      Grid.ColumnSpan="3"
      TextElement.FontFamily="Arial"
      HorizontalAlignment="Center"
      Margin="6,-1,6,6"
      Grid.Row="1"
      Visibility="Visible">
      <Grid.ColumnDefinitions>
          <ColumnDefinition Width="Auto" />
          <ColumnDefinition Width="Auto" />
          <ColumnDefinition Width="Auto" />
          <ColumnDefinition Width="Auto" />
          <ColumnDefinition Width="Auto" />
          <ColumnDefinition Width="Auto" />
          <ColumnDefinition Width="Auto" />
      </Grid.ColumnDefinitions>
      <Grid.RowDefinitions>
          <RowDefinition Height="Auto" />
          <RowDefinition Height="Auto" />
          <RowDefinition Height="Auto" />
          <RowDefinition Height="Auto" />
          <RowDefinition Height="Auto" />
          <RowDefinition Height="Auto" />
          <RowDefinition Height="Auto" />
      </Grid.RowDefinitions>
</Grid>

这个DataTemplate是否是正确的模板?在运行时查看控件并使用snoop浏览可视树时,您可以看到插入到网格中的文本块,但值来自本地源:

enter image description here

我很难过,无法找到关于如何设计这些东西的具体答案。我最好建立自己的UI,然后只是观察属性值,看看它们是否会发生变化?非常感谢任何帮助。

0 个答案:

没有答案