什么是WPF,对WPF的认识

article/2025/9/22 3:37:57

一,什么是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


http://chatgpt.dhexx.cn/article/UxwCYlH9.shtml

相关文章

关于VRRP

目录 HSRP的定义 小结&#xff1a; VRRP作用: VRRP的好处: 工作原理: VRRP与浮动路由的区别 怎么样让路由器成为主路由器呢? 项目实施 拓扑图 步骤 1、打开二层交换机 2、打开三层交换机 3、打开路由器 4、为两台pc机配置ip地址子网掩码和网关 5、测试连通性 总…

华为交换机RRPP单环配置

华为交换机RRPP单环配置 rrpp相关概念&#xff08;取自华为官方文档&#xff09; 控制VLAN&#xff08;Control VLAN&#xff09;和数据VLAN&#xff08;Data VLAN&#xff09; 控制VLAN是相对于数据VLAN来说的。在RRPP域中&#xff0c;控制VLAN只用来传递RRPP协议报文。与控…

VRRP(12)

VRRP VRRP的作用 提供了局域网上的设备备份机制。VRRP是一种容错协议&#xff0c;它保证当主机的下一跳路由器坏掉时&#xff0c;可以及时由另一台路由器来代替&#xff0c;从而保证通讯的连续性和可靠性。 VRRP工作时会在网络中加入一个含有虚拟IP和虚拟MAC地址的虚拟路由器…

RIP

路由信息协议 RIP(Routing Information Protocol) 是内部网关协议 IGP中最先得到广泛使用的协议。RIP 是一种分布式的基于距离向量的路由选择协议。 RIP 协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录。 RIP是应用层协议。使用UDP数据报传送。…

RRPP 演示实例

RRPP 概念&#xff1a;快速环网保护协议RRPP&#xff08;Rapid Ring Protection Protocol&#xff09;是一个专门应用于以太网环的链路层协议。它在以太网环完整时能够防止数据环路引起的广播风暴&#xff0c;而当以太网环上一条链路断开时能迅速启用备份链路恢复环网上各个节点…

H3C交换机RRPP配置

配置Device A # 创建VLAN 2&#xff5e;30&#xff0c;将这些VLAN都映射到MSTI 1上&#xff0c;并激活MST域的配置。 <DeviceA> system-view[DeviceA] vlan 2 to 30Please wait… Done.[DeviceA] stp region-configuration[DeviceA-mst-region] instance 1 vlan 2 to 3…

H3C RRPP实验

实验拓扑 H3C RRPP实验 图 1-1 注&#xff1a;如无特别说明&#xff0c;描述中的 R1 或 SW1 对应拓扑中设备名称末尾数字为 1 的设备&#xff0c;R2 或 SW2 对应拓扑中设备名称末尾数字为 2 的设备&#xff0c;以此类推&#xff1b;另外&#xff0c;同一网段中&#xff0c;IP …

RRPP 实验

实验拓扑 注&#xff1a;如无特别说明&#xff0c;描述中的 R1 或 SW1 对应拓扑中设备名称末尾数字为 1 的设备&#xff0c;R2 或 SW2 对应拓扑中设备名称末尾数字为 2 的设备&#xff0c;以此类推&#xff1b;另外&#xff0c;同一网段中&#xff0c;IP 地址的主机位为其设备编…

VRRP——VRRP讲解

目录 VRRP作用 VRRP的基本概念 基本信息 优先级 主备关系 VRRP报文 VRRP定时器 VRRP状态 VRRP版本 VRRP基本工作原理 VRRP高级特性 VRRP作用 VRRP为虚拟路由冗余协议 将多个设备接口划分在一起&#xff0c;称为一个备份组&#xff08;有主备关系---优先级高的为主&am…

以太网环网的快速环保护协议:RRPP,配有专属案例,爽歪歪!

你好&#xff0c;这里是网络技术联盟站。 今天给大家带来RRPP协议的介绍以及实验配置&#xff0c;希望对大家有所帮助&#xff01; 文章目录 什么是RRPP协议RRPP协议的功能RRPP协议的优势RRPP配置案例背景介绍网络拓扑RRPP配置步骤步骤 1&#xff1a;启用RRPP协议步骤 2&#…

BS架构和CS架构的优缺点

1、CS、BS架构定义 CS(Client/Server):客户端----服务器结构。C/S结构在技术上很成熟,它的主要特点是交互性强、具有安全的存取模式、网络通信量低、响应速度快、利于处理大量数据。因为客户端要负责绝大多数的业务逻辑和UI展示,又称为胖客户端。它充分利用两端硬件,将任…

BS架构说明以及网页组成

B/S架构 1.B/S框架&#xff0c;意思是前端&#xff08;Browser 浏览器&#xff0c;小程序、app、自己写的&#xff09;和服务器端&#xff08;Server&#xff09;组成的系统的框架结构 2.B/S框架&#xff0c;也可理解为web架构&#xff0c;包含前端、后端、数据库三大组成部分 …

B/S三层体系结构

为什么80%的码农都做不了架构师&#xff1f;>>> ASP.NET的三层结构因为每一层都可以在仅仅更改很少量的代码后&#xff0c;就能放到物理上不同的服务器上使用&#xff0c;因此结构灵活而且性能更佳。此外&#xff0c;每层做些什么其它层是完全看不到的&#xff0c;…

B/S结构和C/S结构

在系统开发的网络结构模式设计时&#xff0c;常常会考虑B/S结构还是C/S结构。生活中&#xff0c;类似于使用浏览器网页进行访问的&#xff0c;就是B/S结构&#xff0c;用户无需安装特定的APP。类似于微信、QQ、王者荣耀等等需要下载APP的&#xff0c;或者电脑中安装的微信、英雄…

B/S结构和C/S结构,以及区别和联系

B/S和C/S都是随着互联网的发展而出现的一种网络结构模式&#xff0c;而其用的非常广泛&#xff0c;在我们生活中都很常见。那它们到底是什么呢&#xff1f;接下来就详细的介绍一下B/S和C/S。 一、B/S结构 B是英文单词“Browser”的首字母&#xff0c;即浏览器的意思&#xff1…

BS架构及其运行原理

一. B/S的概念 B/S&#xff08;Brower/Server,浏览器/服务器&#xff09;模式又称B/S结构&#xff0c;是Web兴起后的一种网络结构模式。Web浏览器是客户端最主要的应用软件。 这种模式统一了客户端&#xff0c;将系统功能实现的核心部分集中到服务器上&#xff0c;简化了系统的…

什么是B/S架构?

目录 一.什么是B/S架构&#xff1f; 二.B/S架构与C/S架构有什么区别&#xff1f; 三.B/S架构的优缺点 四.B/S架构的几种形式 1&#xff1a;客户端-服务器-数据库 2&#xff1a;客户端&#xff0d;web服务器&#xff0d;应用服务器&#xff0d;数据库 3&#xff1a;客户端…

B/S C/S 三层体系结构

C/S结构 即 Client/Server (客户机/服务器) 结构&#xff0c;是大家熟知的软件 系统体系结构&#xff0c;通过将任务合理分配到Client端和Server端&#xff0c;降低了系统的通讯开销&#xff0c;需要安装 客户端才可进行管理操作。 客户端和服务器端的程序不同&#xff0c;用…

B/S结构体系、C/S结构体系

概念&#xff1a; C/S结构&#xff1a;Client/Server(客户机/服务器)结构是一种两层结构的系统&#xff1a; B/S结构&#xff1a;Browser/Server(浏览器/服务器)结构是客户端是标准的浏览器&#xff08;如Internet Explore&#xff0c;Netscape Navigator等&#xff09;&#…