我正在构建一个继承自标准 System.Windows.Controls.Calendar 控件的自定义控件。我正在关注关于代码项目的这篇文章。我还想让 CalendarItem 子对象可调整大小,如 MSDN 上的这篇文章中所述。
我将 Calendar、CalendarDayButton 和 CalendarItem 的样式从 Calendar 控件的源代码复制到位于我的 Generic.xaml 中的自定义控件 ResourceDictionary 中。CalendarItem 样式引用了 3 个按钮模板(上个月、下个月和标题按钮),如下所示:
<!-- Start: Previous button content -->
<Button x:Name="PART_PreviousButton"
Grid.Row="0" Grid.Column="0"
Template="{StaticResource PreviousButtonTemplate}"
Height="20" Width="28"
HorizontalAlignment="Left"
Focusable="False"
/>
<!-- End: Previous button content -->
<!-- Start: Header button content -->
<Button x:Name="PART_HeaderButton"
Grid.Row="0" Grid.Column="1"
Template="{StaticResource HeaderButtonTemplate}"
HorizontalAlignment="Center" VerticalAlignment="Center"
FontWeight="Bold" FontSize="10.5"
Focusable="False"
/>
<!-- End: Header button content -->
<!-- Start: Next button content -->
<Button x:Name="PART_NextButton"
Grid.Row="0" Grid.Column="2"
Height="20" Width="28"
HorizontalAlignment="Right"
Template="{StaticResource NextButtonTemplate}"
Focusable="False"
/>
<!-- End: Next button content -->
现在因为这个绑定使用了一个 StaticResource,我需要将三个按钮的样式复制到我的 ResourceDictionary 中。我不打算对这些按钮进行任何更改,因此我希望可以避免在我的 ResourceDictionary 中为它们设置样式。