0

我对 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>
4

1 回答 1

0

在 WPF 中,有两种使用样式的方法:命名样式和类型化样式。命名样式有一个x:Key="..."属性。类型化的样式没有名称,而是一个TargetType="..."属性(Rem:命名样式也可以并且经常确实有一个 TargetType,因此命名样式和未命名样式会更准确)。类型化样式会自动应用于范围内的所有控件,这些控件属于类型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. 为此,您需要定义 Window 的可视化树,并使用 WPF 功能TemplateParts来定义控件模板的哪个部分负责窗口的哪些功能。

这是一个教程,它非常准确地描述了您想要做什么:

代码项目教程

于 2013-04-23T07:05:25.440 回答