我是WPF的新手,我有一个问题:
在我的项目中,我通常使用许多usercontrols,它们来自我的'base'用户控件,它有一些函数可以继承到我的所有用户控件。
使用WPF(派生与winforms相同)是否也可以派生出XAML?我希望创建一个带有XML命名空间标头的XAML,以及重要的UserControl.Resources。
有可能吗?
提前致谢
答案 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。