如何在 XAML 中完成继承?
是否只能继承代码隐藏而不是 .xaml (related question)?在子控件的命名空间中包含父项是唯一的方法吗?
XAML 中似乎没有一般的“继承”。关于继承UserControl
等有questions但不是一般继承。{/ p>
问题:
我有2个xaml文件,File1.xaml
和File2.xaml
,它们非常相似。我可以创建SuperFile.xaml
并将大部分以下代码放入其中吗?
<UserControl ... >
<Grid>
<Grid.RowDefinitions ... />
<DockPanel ... >
<ToolBar ... >
<!-- Some Buttons here:
File1.xaml to contain the Buttons "View" and "Export"
File2.xaml to contain the Buttons "Edit" and "Delete"
-->
</ToolBar>
</DockPanel>
<igDP:XamDataGrid MouseDoubleClick="xamDataGrid1_MouseDoubleClick" ... />
</Grid>
</UserControl>
File1.xaml
和File2.xaml
中唯一不同的内容是:
Button
位于ToolBar
(请参阅代码中的评论)XamDataGrid
的属性,主要是事件(他们在每种情况下都做了什么)。我怎样才能做到这一点?我是否必须为两个孩子编写代码隐藏文件单独?
答案 0 :(得分:4)
您可以使用ResourceDictionary
将所有通用模板和样式放在ResourceDictionary
中,然后同时UserControls
导入ResourceDictionary
<UserControl.Resources>
<ResourceDictionary Source="BaseStylesAndTemplates.xaml" />
</UserControl.Resources>