派生XAML UserControl

时间:2013-03-26 23:06:19

标签: c# wpf user-controls derived-class

我是WPF的新手,我有一个问题:

在我的项目中,我通常使用许多usercontrols,它们来自我的'base'用户控件,它有一些函数可以继承到我的所有用户控件。

使用WPF(派生与winforms相同)是否也可以派生出XAML?我希望创建一个带有XML命名空间标头的XAML,以及重要的UserControl.Resources。

有可能吗?

提前致谢

1 个答案:

答案 0 :(得分:2)

如果您希望在用户控件之间共享资源,请将它们放在以您的用户控件基类型为目标的样式中。要在整个应用程序中访问(和应用)这些资源,请在App.xaml中定义它们。

您可以在基本类型的Style中定义它们:

<Style TargetType={x:Type YourBaseType}>
    <Style.Resources>
       <!-- define your resources here -->
    </Style.Resources>
</Style>

或者,您可以将它们应用于所有UserControls(可能不可取):

<Style TargetType={x:Type UserControl}>
    <Style.Resources>
      <!-- define your resources here -->
    </Style.Resources>
</Style>

如果您希望派生视觉方面,请再次使用Style,在App.config定义中应用Setters。如果需要,这些可以由特定实例“覆盖”。另请查看ControlTemplate