在创建WPF应用的时候,你第一个看到的就是窗体类。它作为窗体的基础,提供标准的边框、工具条、最大化、最小化和关闭按钮。WPF窗体是XAML文件和后台代码文件的混合体。在VS(Express)里面创建一个WPF应用,将会生成一个默认窗体,显示如下代码:
<span style="font-size:14px;"><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></span>
x:Class属性指示了该XAML文件使用哪个类,这里默认的是Window1,是VS自动生成的。在VS的项目树里,你会发现它是XAML文件的一个子节点。默认如下:
<span style="font-size:14px;">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();
}
}
}</span>
Window1类是一个局部类,运行时联合XAML文件显示一个完整的窗体。实际上是调用InitializeComponent()的结果。
回到XAML文件,我们注意到,在窗体元素下还有很多有意思的属性,如Title。Title定义了窗体的标题、其实高和宽。另外还有一些命名空间的定义,我们会在XAML章节提到。另外,VS在窗体里面还创建了一个网格控件。网格是一种WPF容器。WPF容器可以是一个panel或者control,但是窗体只能有一个子控件,而Panel可以包含多个子控件,所有通常使用Panel。在后面我们将仔细研究各式各样的容器,它们在WPF中非常重要。
重要的窗口属性
WPF窗体类包含一堆有意思的属性,用于设置应用窗口的外观。下面是最有用的一些属性列表:
Icon——允许你定义窗口的图标,位于窗口的左上角,窗口标题的左侧。
ResizeMode——是否允许最终用户改变窗口大小。默认的是CanResize,也就是允许调整窗口大小,允许使用最大化/最小化按钮或者拖拽边框。CanMinimize允许最小化窗体,但是不允许最大化,也不允许拖大或者拉小。NoResize限制最多,不再显示最大化和最小化按钮,也不能被拖大或拉小。
ShowInTaskbar——默认的是true,如果你设置成false,窗体将不会出现在任务栏中。这对于次要窗口或需要最小化到托盘的应用来说特别有用。
SizeToContent——设置是否允许窗口自适应它的内容。默认的是手动,不会自动调整适应。其他选项如宽、高分别对应于自动调整水平、垂直的尺寸。
Topmost——默认的是false,如果设置成true,那么你的窗口将置于其他窗口的上面,除非最小化。这个属性只在特殊场景下才使用。
WindowStartupLocation——控制窗口的初始化位置,默认的是手动,也就是根据窗口的Top和Left属性。其他选项如CenterOwner意味着窗口里面居中,CenterScreen意味中屏幕居中。
WindowState——窗口的初始化状态,可以是Normal, Maximized or Minimized。默认的是Normal,其他只有在需要时才使用。
还有很多很多属性,请自行学习。