2010-08-19 92 views
1

我扩展了WPF日历控件,并且已将Calendar,CalendarItem,CalendarButton和CalendarDayButton的控件模板复制到我的自定义控件的Generic.xaml。 Calendar控件模板的TargetType是我的自定义控件,FsCalendar:自定义控件模板的TargetTypes?

<!-- Calendar Control Template --> 
<Style TargetType="{x:Type local:FsCalendar}"> 
... 
</Style> 

但是其他控件模板呢?我是否将它们定位在原始日历上?

<!-- CalendarDayButton Control Template --> 
<Style TargetType="CalendarDayButton"> 
... 
</Style> 

还是将其定位到我的自定义控件?如果是这样,我该怎么做?

我试图把我的命名空间(local)放入声明中,但那不起作用。因此,按照目前的情况,TargetType被设置为默认的System.Windows.Controls.Primitives命名空间。

感谢您的帮助。

回答

2

如果您仍然使用原始的相同对象,即未创建新的FsCalendarDayButton,那么您只需要复制原始TargetType。

如果您想在FsCalendar中使用它们时更改模板,您可以将x:Key添加到每个模板中,然后为每种用法添加StaticResource引用(如果它们嵌套可能不太实用或自动生成的实例),或将它们保留为仅使用TargetType进行隐式类型化,并将它们移动到Style或ControlTemplate的资源中,以便随时调用Style。

如果你不修改这些控件,那么你根本不需要它们的样式副本 - 当你使用控件时,就像Button或ComboBox一样,默认值会被选中。

+0

谢谢,约翰 - 接受和+1。 – 2010-08-19 13:31:54