Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.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 自定义控件模板的TargetTypes?_Wpf_Custom Controls - Fatal编程技术网

Wpf 自定义控件模板的TargetTypes?

Wpf 自定义控件模板的TargetTypes?,wpf,custom-controls,Wpf,Custom Controls,我正在扩展WPF Calendar控件,并已将Calendar、CalendarItem、CalendarButton和CalendarDayButton的控件模板复制到自定义控件的Generic.xaml。日历控件模板的TargetType是我的自定义控件FsCalendar: <!-- Calendar Control Template --> <Style TargetType="{x:Type local:FsCalendar}"> ... </Style&

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

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

...
但是其他控件模板呢?我是不是把它们放在原来的日历上,像这样

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

...
还是将其定向到自定义控件?如果是的话,我会怎么做

我尝试将我的名称空间(
local
)放入声明中,但没有成功。因此,目前,TargetType被设置为默认的
System.Windows.Controls.Primitives
名称空间


感谢您的帮助。

如果您仍在使用原始对象中的相同对象,即尚未创建新的FsCalendarDayButton,则只需与复制的原始TargetTypes完全相同即可

如果要在FsCalendar中使用它们时更改它们的模板,可以为每个模板添加x:Key,然后在每次使用时添加StaticResource引用(如果它们是嵌套的或自动生成的实例,则可能不实用)在您的FsCalendar模板中,或者将它们保留为仅使用TargetType隐式键入,并将它们移动到您的样式或ControlTemplate的资源中,以便在加载该样式时,它们都能得到支持

如果您不修改这些控件,那么您根本不需要它们样式的副本-当您使用这些控件时,默认值将被选中,就像按钮或组合框一样