This article has been localized into Chinese by the community.
Window
创建WPF应用程序时,你首先会遇到Window类。它作为窗体的根节点,提供了标准的边框,标题栏和最大化,最小化和关闭按钮。WPF窗体是XAML(.xaml)文件(其中<Window>元素是根)和后台代码(.cs)文件的组合。如果您正在使用Visual Studio(Express)并创建一个新的WPF应用程序,它将为您创建一个默认窗体,如下所示:
<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类被定义为partial,因为它在运行时与您的XAML文件组合在一起,为您提供完整的窗体。这实际上是调用InitializeComponent()完成的,这就是为什么需要启动并运行一个完整功能的窗口。
如果我们返回到XAML文件,你会注意到Window元素上有一些其他有趣的属性,例如Title,它定义了窗口的标题(显示在标题栏中)还有起始宽度和高度。还有一些命名空间定义,我们将在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,除非您希望窗口最大化或最小化,否则应该使用它。
当然还有很多其他属性,所以请自行查阅,然后继续下一章。