窗体是WPF中最重要的一个呈现控件,它能够容纳其他的WPF控件,用户通常也是通过窗口来与WPF应用程序进行数据交互的。简单的说,WPF窗体就是应用程序的载体,承载了控件和用户数据展示。
WPF技术从传统Windows技术发展而来,WPF窗体也继承了很多WinForm窗体特性,同时又具有很多自己的个性,特别是在美观上能够请轻松制作出过去很难实现的炫酷效果。
- 窗体的组成
- 窗体的创建
- 物理窗体的创建
通过项目管理菜单添加新WPF窗体
这个只是创建的类(窗体的类)
- 窗体对象的创建(需要实例化
默认创建好的窗体是项目中的一个类不能直接使用,必须使用窗体名定义出窗体对象才能使用。即便对项目默认自动加载的窗体(App.XAML中或通过Program.CS中定义),其运行实际上也是先定义了对象再运行的。
定义格式:
窗体名窗体对象名=new 窗体名([可选的构造参数]);
- 窗体的声明周期
- 窗体对象的状态和模式窗体的模式主要包括三个属性的应用
- 窗体的外观属性 WindowsStyle属性
3D边框,推荐默认使用。
(5)窗体间的传值(数据传递)
WPF窗体之间要实现数据传递可以采用如下四种方式:
(1)声明个全局变量,就是App.xaml里面声明;在所有窗体里面都可以引用Application.Current.Properties["ArgumentName"]。
(2)第二个就是在目标窗体上面公开个属性,直接赋值;
(3)在Uri里面传参数NavigationService.Navigate(window object,argument value);
(4)定义一个静态类,所有窗体都可以访问静态类的静态数据成员。
推荐第一个和第四个方法
3、不规则窗体
不规则窗体顾名思义就知道这种窗体是不同于传统的矩形窗体的,它们可以是各种奇怪的形状,三角形、圆形、还有各种位图造型。使用不规则窗体,WinForm和WPF均可实现,不过相对传统Winform较为麻烦些,需要调用Windows API,而且效率还不高,现在如果使用WPF则相对简单的多。
实现WPF不规则窗体的几种常用的方法如下:
使用Blend等工具绘制一想要的窗体。
使用Blender制作想要的Path的说明。
给window的Clip属性赋Path值。
使用透明背景的PNG图像。
为Window主容器添加Border