【问题标题】:TargetTypes for Custom Control Templates?自定义控件模板的 TargetTypes?
【发布时间】:2010-08-19 12:33:23
【问题描述】:

我正在扩展 WPF 日历控件,并将 Calendar、CalendarItem、CalendarButton 和 CalendarDayButton 的控件模板复制到我的自定义控件的Generic.xaml。 Calendar 控件模板的 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 命名空间。

感谢您的帮助。

【问题讨论】:

    标签: wpf custom-controls


    【解决方案1】:

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

    如果您想在 FsCalendar 中使用它们时更改它们的模板,您可以将 x:Key 添加到每个模板,然后在每次使用时添加 StaticResource 引用(如果它们是嵌套的或自动生成的实例)在您的 FsCalendar 模板中,或者将它们保留为仅使用 TargetType 的隐式类型,并将它们移动到 Style 或 ControlTemplate 的资源中,以便在加载该 Style 时将它们拉到一起。

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

    【讨论】:

      猜你喜欢
      • 2015-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多