问候,我有一个自定义样式的窗口(包括自定义模板),但现在我想在我的窗口模板布局中定义一些部分,例如-窗口标题栏,窗口内容(项目的默认位置)和窗口页脚,所以我可以这样使用它(或类似):
<Window Style="{StaticResource CustomWindow}">
<Window.Header>
<Grid x:Name="HeaderGrid">
</Grid>
</Window.Header>
<Grid x:Name="ContentGrid">
</Grid>
<Window.Footer>
<Grid x:Name="FooterGrid">
</Grid>
</Window.Footer>
</Window>
字符串
我想我必须添加相应的依赖属性到包含我的窗口样式的样式字典的. xaml.cs文件中,但它的类不是从任何东西继承的,所以它不是DependencyObject,我试图添加依赖属性到使用样式的窗口中,所以我可以将模板中的ContentPresenters绑定到它,但它不允许从窗口的xaml设置这些属性的内容,那么有没有办法做到呢?
2条答案
按热度按时间rlcwz9us1#
要使用你的例子,你应该创建一个自定义的基类,你的所有窗口都可以从它继承。
定义基类
SectionWindow
的默认布局。只需在 /Themes/Generic.xaml 文件中定义相关的默认Style
:泛型.xaml
字符串
然后定义基类。这是一个基本的例子。建议为每个节属性定义相应的模板属性。例如,
Header
属性应该有一个关联的HeaderTemplate
依赖属性,类型为DataTemplate
。由于默认Style
中的ContentPresenter
使用ContentPresenter.ContentSource
属性,因此模板将自动Map。对于
Content
属性,我们可以重用继承的Window.Content
属性。SectionWindow.cs
型
然后,您可以使用新窗口
SectionWindow
,如下所示:MainWindow.xaml.cs
型
MainWindow.xaml
型
kkih6yb82#
您可以创建从
Window
派生的CustomControl
,如下所示字符串
用
Style
表示,型
这里是用法示例
型
不要忘记将
MainWindow.xaml.cs
的基类更改为CustomWindow