1、什么是wpf WPF是微软新一代图形系统,运行在.NET Framework 3.0及以上版本下,为用户界面、2D/3D 图形、文档和媒体提供了统一的描述和操作方法。基于DirectX 9/10技术的WPF不仅带来了前所未有的3D界面,而且其图形向量渲染引擎也大大改进了传统的2D界面,比如Vista中的半透明效果的窗体等都得益于WPF。 2、WPF 需要使用 Visual Studio 进行开发: Required Workloads: .NET Desktop Development Desktop development with C++ Required Individual Components: C++/CLI support Windows 10 SDK 3、新建一个 WPF 工程: 默认情况下会创建两个文件,一个是 XAML 文件(mainwindow.xaml),另一个是 CS 文件(mainwindow.cs) 在 mainwindow.xaml 上,可以看到两个子窗口,一个是设计窗口,另一个是源(XAML)窗口。 在 WPF 应用程序中,有两种方法可以为你的应用程序设计 UI。一种是简单地将 UI 元素从工具箱拖放到设计窗口。第二种方法是通过为 UI 元素编写 XAML 标记来设计 UI。当拖放功能用于 UI 设计时,Visual Studio 会处理 XAML 标记。 默认情况下,Grid 设置为页面后的第一个元素。 4、数据校验 Binding的ValidationRules属性用于数据校验,ValidationRule是个抽象类,使用时需要创建其派生类并重写其Validate方法。Binding进行校验时默认只校验从Target到Source的数据,从Source到Target的数据部进行校验。如果想校验从Source到Target的数据,需将校验条件的ValidatesOnTargetUpdated设置为true. 5、WPF的特点 优点: MVVM模式,数据和视图分离 类库多,上手快,可以快速开发 灵活的控件组合,可以修改已经存在的控件的外观 可以应用不同样式不同的控件,易于管理 支持动画,高级图形,高级数据绑定,3D等功能 绚丽的展示效果WPF除了可以使用传统的Windows Installer以及ClickOnce方式来发布我们的桌面应用程序之外,还可以将我们的应用程序稍加改动发布为基于浏览器的应用程序。 缺点: 对微软系统依赖性太强 到了非微软的操作系统上,很多FrameWord里面的类库就不好使了。 技术更新速度快 移动和硬件领域的乏力,c/c++/java在移动领域和硬件领域的开发优势,是不用多说的----你见过几个公司,选择用c#来开发移动系统或者硬件驱动的? 6、语法 XAML 语法这一部分基本内容都是摘抄微软官方的WPF中的 XAML 概述,只不过进行了小部分的词语修改以及增加 Demo,降低理解难度。 7、对象元素 对象元素通常声明类型的实例,该类型在将 XAML 用作语言的技术所引用的程序集中定义。指定对象元素标记时,会创建一条指令,指示 XAML 解析器创建基础类型的新实例。每个实例都是在分析和加载 XAML 时通过调用基础类型的无参数构造函数来创建。 8、基于属性的WPF动画 在WPF中, 动画使用了一个完全不同的模型。本质上, WPF动画只不过是在一段时间间隔内修改依赖性 属性值的一种方式。 优点: 1.一套完整的动画封装, System.Windows.Media.Animation空间下已经提供了多数动画类。 2.完成不同的特效, 只需要微调部分属性即可。 3.支持硬件加速。