什么是WPF,对WPF的认识

一,什么是WPF

WPF(Windows Presentation Foundation)翻译为中文“Windows呈现基础” 是微软新发布的Vista操作系统的三个核心开发库之一,是微软推出的基于Windows Vista的用户界面框架,属于.NET Framework 3.0的一部分。它提供了统一的编程模型、语言和框架,真正做到了分离界面设计人员与开发人员的工作;同时它提供了全新的多媒体交互用户图形界面。

二,WPF有关知识

首先说一下学习WPF的基础知识:

  1. 要会一门.NET所支持的编程语言。例如C#

  2. 会一点“标准通用标记语言”:WPF窗体程序使用的XAML语言,也属于“标准通用标记语言”的一个分支。如果以前接触过XML、HTML、XHTML、ASP.NET之类的“标准通用标记语言”,对于学习是有所帮助的。

  3. 有一定的WinFormASP.NET经验,主要是对控件事件的处理要有所了解。

  4. 拥有良好的面向对象的思想:在WPF中,经常要灵活运用各种继承关系、多态、重载等。

  5. DataBinding要有所了解:Binding是WPF的一大亮点。

  6. 对设计模式要有一定的了解:当然是越深入越好了,在实际项目中,各种设计模式经常交融使用。

三,WPF的特点

优点:

  1. MVVM模式,数据和视图分离
  2. 类库多,上手快,可以快速开发
  3. 灵活的控件组合,可以修改已经存在的控件的外观
  4. 可以应用不同样式不同的控件,易于管理
  5. 支持动画,高级图形,高级数据绑定,3D等功能
  6. 绚丽的展示效果WPF除了可以使用传统的Windows Installer以及ClickOnce方式来发布我们的桌面应用程序之外,还可以将我们的应用程序稍加改动发布为基于浏览器的应用程序。

缺点:

  1. 对微软系统依赖性太强 到了非微软的操作系统上,很多FrameWord里面的类库就不好使了。
  2. 技术更新速度快
    移动和硬件领域的乏力,c/c++/java在移动领域和硬件领域的开发优势,是不用多说的----你见过几个公司,选择用c#来开发移动系统或者硬件驱动的?

四,WPF和Winfrom的区别

在两者最重要的区别,WinFrom只是标准窗体控件顶部的一层(如文本框),而WPF从零凯斯,几乎在所有场景下都不依赖于标准窗体控件

举一个很好的栗子,现在有一个带图片和文字的按钮。它并不是一个标准窗体控件,WinForms无法提供现成的,你不得不自己画图片,实现支持图像的按钮,或使用第三方控件。相反,在WPF,按钮可以包含任何东西,因为它本质上是一个带内容和不同状态的边框。WPF的按钮就好像是一个看不见的物体,可以放入各种其他控件到里面,不部分WPF控件都是如此。你是想要一个带图片和文字的按钮?很简单,只要把一张图片和一个文本块放到按钮里面就搞定了。在标准WinForms控件之外好像你找不到这种灵巧的方式,这就是为什么像带图片的按钮这种简单的控件实现会有如此大市场的原因。

WPF优势

  1. 比较新,从而更符合目前的标准。
  2. 微软正在使用它开发很多新应用,比如Visual Studio。
  3. 更灵活,你不必再去自己写控件或者买控件。
  4. 你所使用的第三方控件更多的聚焦在WPF上,因为它比较新。
  5. XAML使得GUI的创建和编辑更加容易,而且允许拆分设计器(XAML)和代码器(C#, VB.NET).
  6. 数据绑定,你可以更加彻底的分离数据和布局.
  7. 用硬件加速绘制图形用户界面,性能更好。
  8. 允许你在Windows应用和web应用之间进行用户交互。

WinForms优势

  1. 出现比较久,已经经历很多检验和测试。
  2. 已经有很多第三方控件供你购买或者免费使用。
  3. Visual Studio设计器仍然更适合WinForms,在WPF很多东西你还是需要自己去开发。

五,开发基础

  1. 新建WPF应用程序
    选择菜单->“文件”->“新建”->“项目”,在“新建项目”对话框中选择WPF应用程序,修改名称为WpfDemo,然后点击“确定”按钮,如下图所示:
    在这里插入图片描述
  2. 生成的文档接口图如下:
    在这里插入图片描述
  3. 在App.xaml中的“StartupUri”属性可以指定项目运行时的启动窗体。如下图中“StartupUri=”MainWindow.xaml””,还可以定义我们需要的系统资源以及引入程序集等,如下图所示:
    在这里插入图片描述

六,XAML语言

XAML语言:是微软公司为构建应用程序用户界面而创建的一种新的“可扩展应用程序标记语言”,提供了一种便于扩展和定位的语法来定义和程序逻辑分离的用户界面。

特点:
定义应用程序的界面元素
显示的声明WPF资源(样式、模板、动画等)
可扩展性(自定义UI控件)
集中关注于界面的设计和实现

七,XAML命名空间以及命名空间映射到程序集

1. XAML命名空间

开发语言会将常用功能以类的形式封装,开发人员根据自己的业务需求,也会封装满足自身业务需求的类,如果有序组织这些类?一方面,便于开发人员准确调用;另一方面,编译器可以有效识别具有相同命名的类,就引入了命名空间,简单的说,是通过类似树状结构来组织各种类,是一种较为有效的类名排列方式。

而XAML和.NET其他语言一样,也是通过命名空间有效组织起XAML内部的相关元素类,这里的命名空间与.NET中的命名空间不是一一对应的,而是一对多,一眼望去,都是“网址”,这里的网址,是遵循XAML解析器标准的命名规则,而不是真正的网址(在IE中根本打不开)。
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"对应一些与XAML语法和编译相关的CLR名称空间,例如

< Style x:key=“buttonMouseOver” TargetType="{x:Type Button}">
这里的xmlns和xmlns:x的区别在于x作为别名,在应用时,以前缀形式出现,而xmlns作为默认命名空间,不使用前缀标识的元素,来自该命名空间。

XAML命名空间的语法:

xmlns[:可选映射前缀]=“命名空间描述”
注意:没有加可选映射前缀的xmlns是WPF默认的命名空间,一个xaml文件只能有一个默认的命名空间
一个完整的xaml文件,必须具备两个命名空间。

2、自定义类或程序集映射语法

xmlns[:必选映射前缀]=“clr-namespace:[命名空间];assembly=[程序集名称]”

在同一个解决方案下面新建一个“”的项目,命名为“WPFUserControl”,在项目的属性里面修改默认

的命名空间为:MyControl.WpfUserControl,添加两个TextBlock和两个TextBox,如图所示:
在这里插入图片描述
在第一个项目里面引用新建的用户控件,注意:首先要添加新建用户控件库的引用。
在这里插入图片描述
3、映射到当前程序集的语法
xmlns[:必选映射前缀]=“clr-namespace:[命名空间]”
在当前项目下面新建一个用户控件,添加两个TextBlock和两个TextBox,如下图所示:
在这里插入图片描述
在MainWindow.xaml里面调用新建的用户控件,需要引用命名空间:
在这里插入图片描述

资料来源https://www.jianshu.com/p/4668a237d0fa
资料来源https://blog.csdn.net/seanbei/article/details/52601089

  • 32
    点赞
  • 226
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值