Wpf 实现自己的窗口边框和标题栏最经济的方法是什么?
我是WPF的新手,坐在这里看我的书,试图找出这个应用程序的最佳方法 标题栏不是客户端区域的一部分,因此我正在制作自己的标题栏 哪种方法最容易将其转化为某种资源,应用于我创建的所有新窗口Wpf 实现自己的窗口边框和标题栏最经济的方法是什么?,wpf,customization,Wpf,Customization,我是WPF的新手,坐在这里看我的书,试图找出这个应用程序的最佳方法 标题栏不是客户端区域的一部分,因此我正在制作自己的标题栏 哪种方法最容易将其转化为某种资源,应用于我创建的所有新窗口 <Application.Resources> <Style x:Key="WindowTheme"> <Setter Property="Window.WindowStyle" Value="None"/> </Style>
<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>
在WPF中,有两种使用样式的方法:命名样式和键入样式。命名样式具有
x:Key=“…”
属性。类型化样式没有名称,但有一个TargetType=“…”
属性(Rem:命名样式也可以而且通常也有一个TargetType,因此命名样式和未命名样式更精确)。类型化样式将自动应用于范围中的所有控件,这些控件的类型为TargetType
(不是派生类型)
要创建自己的窗口,可以将其模板属性设置为以下样式的UserControl:
<Style TargetType="{x:Type Window}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
实现控件模板的专业方法是“从头开始”实现它,这意味着不使用从窗口
派生的UserControl。为此,请定义窗口的可视树,并使用WPF功能TemplateParts定义控件模板的哪个部分负责窗口的哪些功能
下面是一个教程,它非常准确地描述了您想要做的事情:
如果资源中已经包含了用于最大化、最小化、关闭、重新调整大小和拖动的所有事件处理代码,那就太棒了!
<Style TargetType="{x:Type Window}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>