今天要讲的是XAML的窗口变化,什么是窗口变化?就是运行的时候,把窗口的大小和位置都调整一遍,在一次运行的时候,窗口的位置是根据上一次的调整而出现,至于它是着么出现的,我们来看一下。
首先:创建一个窗口页面,名字随便命名,然后在宽度和高度的后面写上一个事件代码Closing。
代码如下:
<Window x:Class="WPF_dome.窗口变化大小"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="窗口变化大小" Height="300" Width="300" Closing="Window_Closing">
<Grid>
</Grid>
第二步:写好事件后跳转到后台,编写后台代码,先读取配置文件,然后在设置位置和大小,在设置窗口状态,然后在跳转的事件名称里写上保存当前位置、大小和状态,到配置文件的代码。
代码如下:
Public 窗口变化大小()
{
InitializeComponent();
//读取配置文件
try{
//设置位置、大小
Rect restoreBounds =
Properties.Settings.Default.MainRestoreBounds;
this.WindowState = WindowState.Normal;
this.Left = restoreBounds.Left;
this.Top = restoreBounds.Top;
this.Width = restoreBounds.Width;
this.Height = restoreBounds.Height;
//设置窗口状态
this.WindowState =
Properties.Settings.Default.MainWindowState;
}
Catch{ }
}
Private void Window_Closing(object sender, System.ComponentModel.
CancelEventArgs e)
{
//保存当前位置、大小和状态,到配置文件
Properties.Settings.Default.MainRestoreBounds =
this.RestoreBounds;
Properties.Settings.Default.MainWindowState =
this.WindowState;
Properties.Settings.Default.Save();
}
第三步:当你启动的时候,去调固定大小是不行的,是保存不了你固定的大小和位置的,为什么会保存不了呢?是应为我们VS里少了一种配置,所以我们保存不了,这时我们就要去弄一些配置程序。
首先找到Properties下面的Settings.settings 文件(图1),把里面的原属性删掉,在里面添加两个属性,分别是MainRestoreBounds和MainWindowState它们的类型是属于Systrm.Windows.Rect和System.Windows.WindowState,范围都是用户,值是0,0,0,0和Normal,弄好之后就可以了。
图1: