WPF教程(九)窗体

  • Post author:
  • Post category:其他

在创建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,其他只有在需要时才使用。

还有很多很多属性,请自行学习。