Wpf 实现自己的窗口边框和标题栏最经济的方法是什么?

Wpf 实现自己的窗口边框和标题栏最经济的方法是什么?,wpf,customization,Wpf,Customization,我是WPF的新手,坐在这里看我的书,试图找出这个应用程序的最佳方法 标题栏不是客户端区域的一部分,因此我正在制作自己的标题栏 哪种方法最容易将其转化为某种资源,应用于我创建的所有新窗口 <Application.Resources> <Style x:Key="WindowTheme"> <Setter Property="Window.WindowStyle" Value="None"/> </Style>

我是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>

在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>