-
WPF应用程序:

窗户

创建WPF应用程序时,你首先会遇到Window类。它作为窗体的根节点,提供了边框,标题栏和标准最小化和关闭按钮。WPF窗体是XAML(.xaml)文件(其中<Window>元素是根)和后台代码(.cs)文件的组合。示:

<Window x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="300" Width="300">
    <Grid>

    </Grid>
</Window>

x:class属性告诉 XAML 文件使用哪个类,这个例子中是 Window1,它是由 Visual Studio 为我们创建的。您将在 VS 的项目树中找到它,它是 XAML 文件的子节点。默认情况下,像这样:

using System;
using System.Windows;
using System.Windows.Controls;
//…more using statements

namespace WpfApplication1
{
    /// <summary>
    /// Interaction logic for Window1.xaml
    /// </summary>
    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();
        }
    }
}

如您所见,Window1 类被定义为部分,因为它在运行时与您的 XAML 文件组合,为您提供完整的窗体。这实际上是调用InitializeComponent()完成的,就是为什么需要启动并运行一个完整功能的图片。

如果我们返回XAML,你会注意到窗口元素上有一些其他的属性,比如标题,它定义了图片的标题(显示在标题了)还有文件宽度和高度。还有一些隐藏的空间定义,我们将在 XAML 章节中讨论。

您还会注意到Visual Studio已在Window中为我们创建了一个Grid控件。Grid是WPF面板之一。虽然这个被包含在Window中的控件也可以是任何面板或控件,但Window只能拥有一个子控件,因此,使用一个可以包含多个子控件的面板通常是一个不错的选择。在本教程的后面,我们将更深入地了解您可以使用的不同类型的面板,因为它们在WPF中非常重要。

重要的Window属性

WPF的Window类有许多有趣的属性,您可以设置这些属性来控制应用程序窗口的外观和行为。这里是最有趣的一个简要列表:

Icon - 允许你定义窗口的图标,该图标通常显示在窗口标题之前的左上角。

ResizeMode - 这可以控制最终用户是否以及如何调整窗口大小。默认是CanResize,允许用户像任何其他窗口一样调整窗口大小,使用最大化/最小化按钮或拖动其中一个边缘。CanMinimize将允许用户最小化窗口,但不能最大化它或拖动它更大或更小。NoResize是最严格的,最大化和最小化按钮被移除,窗口不能被拖得更大或更小。

ShowInTaskbar - 默认值为true,但如果将其设置为false,则窗口将不会在Windows任务栏中显示。适用于非主窗口或应尽量减少托盘的应用程序。

SizeToContent - 决定Window是否应调整自身大小以自动适应其内容。默认是Manual, 这意味着窗口不会自动调整大小。其他选项有Width,Height和WidthAndHeight,分别对应自动调整宽度,高度或同时调整两者。

Topmost - 默认是false, 但如果设置为true,除非最小化,否则您的窗口将保持在其他窗口之上。仅适用于特殊情况。

WindowStartupLocation - 控制窗口的初始位置。默认是Manual, 表示窗口最初将根据窗口的Top和Left属性进行定位。其他选项是CenterOwner,它将窗口定位在其所有者窗口的中心,以及CenterScreen,它将窗口定位在屏幕的中心。

WindowState - 控制初始窗口状态。它可以是Normal,Maximized或Minimized。默认值为Normal,除非您希望窗口最大化或最小化,否则应该使用它。

当然还有很多其他属性,所以请自行查阅,然后继续下一章。