我是WPF的新手,我正坐在这里,试图找出应用程序的最佳方法。
标题栏不是客户区的一部分,所以我正在制作自己的标题栏。
最简单的方法是将它变成某种资源以应用于我创建的所有新窗口?
<Application.Resources>
<Style x:Key="WindowTheme">
<Setter Property="Window.WindowStyle" Value="None"/>
</Style>
<!--Would I create a user control here for the title bar/border and title bar buttons? Or would it be a style?-->
</Application.Resources>
答案 0 :(得分:0)
在WPF中,有两种使用样式的方法:命名样式和类型样式。命名样式具有x:Key="..."
属性。类型化样式没有名称,但是TargetType="..."
属性(Rem:命名样式可以并且经常也有TargetType,所以名为样式,未命名< / em>样式会更精确)。类型化样式会自动应用于作用域中的所有控件,类型为TargetType
(不是派生类型)。
<Style TargetType="{x:Type Window}">
<Setter Property="Background" Value="Blue" />
</Style>
要创建自己的窗口,可以将其模板属性设置为样式中的UserControl:
<Style TargetType="{x:Type Window}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
实现控件模板的专业方法是“从头开始”实现它,这意味着不使用派生自Window
的UserControl。为此,您可以定义Window的可视化树,并使用WPF功能 TemplateParts 来定义控件模板的哪个部分负责窗口的功能。
这是一个教程,它描述了你想要做的事情: