2021.07.28
WPF(Windows Presentation Foundation)是微软推出的基于Windows 的用户界面框架,属于.NET Framework 3.0的一部分。
WPF的特点:程序人员与美工人员明确分工
Windows Presentation Foundation 由两个主要部分组成:引擎和编程框架。
运行环境
WPF可以运行在三种环境下面,如下:
1.WPF桌面程序,此类型没有任何限制,可以是Windows可执行程序也可以是DLL动态链接库。只需要.Net Framework 3.0以上版本支持即可!
2.RIA分布式环境,服务器与客户端浏览器下载使用ActiveX插件方式解释执行的。微软更名为Silverlight,由于安全原因,微软提取精简版.Net Framework到Silverlight中独立
运行,精简了很多类库。
3.浏览器承载的应用程序(称为 XAML 浏览器应用程序 (XBAP)),您可以创建能够使用超链接(Hyperlink 类)导航的页面 (Page) 和页函数 (PageFunction(Of (T)))。
XAML语言:是微软公司为构建应用程序用户界面而创建的一种新的“可扩展应用程序标记语言”,提供了一种便于扩展和定位的语法来定义和程序逻辑分离的用户界面。
特点:
定义应用程序的界面元素
显示的声明WPF资源(样式、模板、动画等)
可扩展性(自定义UI控件)
集中关注于界面的设计和实现
XAML三个顶级元素:
Window、UserControl(用户控件,布局的时候像窗体那样布局就可以了)、Page把窗体以网页形式展现。而一个XAML页面里只能有一个顶级元素。而顶级元素里面只能有一个子元素。因此要有布局控件。
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文件,必须具备两个命名空间。
自定义类或程序集映射语法
xmlns:[必选映射前缀]="clr-namespace:[命名空间];assembly=[程序集名称]"
在同一个解决方案下面新建一个项目,命名为“WPFUserControl”,在项目的属性里面修
改默认的命名空间为:MyControl.WpfUserControl,添加两个TextBlock和两个TextBox,
在第一个项目里面引用新建的“用户控件”,注意:首先要添加新建用户控件库的引用。
映射到当前程序集的语法
xmlns:[必选映射前缀]="clr-namespace:[命名空间]"
在当前项目下面新建一个用户控件,添加两个TextBlock和两个TextBox,
控件
实质 :先从UI上分析,UI的功能是让用户观察和操作数据,为了能显示数据和响应用户的操作通知程序(通过事件来通知,如何处理事件又是一系列的算法),所以控件就是显示数据和响应用户操作的UI元素,也即:控件就是数据和行为的载体。
数据驱动UI
什么是数据驱动UI呢?我们知道传统的GUI界面都是由windows消息通过事件传递给程序,程序根据不同的操作来表达出不同的数据体现在UI界面上,这样数据在某种程度上来说,受到很大的限制。WPF中是数据驱动UI,数据是核心,处于主动的,UI从属于数据并表达数据,是被动的。WPF数据第一,控件第二。
2021.07.28相关推荐
- 新手如何理解一个Web应用的构建(2021.07.29更新)
Web应用构建 ==前言== 我为什么写这篇文章? 适合什么样的人看? ==摘要== 步骤汇总 (1)网站定位与功能设定 (2)信息架构 (3)UI设计 (4)应用架构 (5)开发 (6)部署 (7) ...
- GMOJ - 2021.07.20【普及组】模拟赛C组 - 排座椅(seat)、传球游戏(ball)、立体图(drawing)、间谍派遣、seek
文章目录 luogu博客链接 GMOJ - 2021.07.20[普及组]模拟赛C组 - 排座椅(seat).传球游戏(ball).立体图(drawing).间谍派遣.seek T1 排座椅(seat ...
- 前端面经笔记 2021.8.28
前端面经笔记 2021.8.28 下面哪些执行结果为true() A.'foo' == new function(){ return String('foo'); }; B.'foo' == new ...
- 哔哩哔哩“2021.07.13 我们是这样崩的”报告的学习-1
哔哩哔哩"2021.07.13 我们是这样崩的"报告的学习-1 这份报告是我学计算机两年来第一次真实看到大厂的员工到底在干什么.出现了很多专有名词,以及当前最先进的互联网企业的应用 ...
- 2021.07.22禾赛提前批一面面经
2021.07.22禾赛提前批一面面经 1.LUTRAM的意思 2.LUTRAM和block RAM的区别 3.时序约束和时序优化 4.跨时钟域 5.为什么不能多bit采用同步寄存器打两拍(就这个问题 ...
- 2021.07.07 宇信科技
2021.07.07 宇信科技 宇信科技 晚上电话面 问了一堆java基础,离谱,jd上也没要求java:简历筛选扣工资! java小白,凭借c语言基础简单回答了一哈,面试官估计在电 ...
- 2021.12.28同花顺--智能--选股平台----技术指标--其它指标--逍遥买卖宝--指标B
2021.12.28同花顺--智能--选股平台-- --技术指标--其它指标--逍遥买卖宝--指标B
- Spring Boot安装及使用(2021.10.28)
Spring Boot安装及使用 2021.10.28 1.Spring Boot 简介 1.1 为何选择Spring? 1.2 Spring的功能 1.3 Spring项目的依赖包管理工具(Mave ...
- 2021.1.28课程摘要(逻辑教育-王劲胜)
2021.1.28课程摘要 逻辑教育-13期-Python基础班-王劲胜 一.浅拷贝和深拷贝 二.元组 三.字典 四.作业讲解 逻辑教育-13期-Python基础班-王劲胜 一.浅拷贝和深拷贝 • 深 ...
最新文章
- 计算机音乐戏子多秋,抖音戏子多秋是什么歌
- Galaxy nexus i9250 android 4.2 一键root
- android studio中连接夜神报错 adb server version doesn't match this client
- Erlang与java的内存架构比较
- 三角网导线平差实例_导线测量平差实例
- linux wine运行效率,Wine 3.0让Windows应用在Linux上流畅运行!
- python json模块详解_深入解析Python编程中JSON模块的使用
- MySQL工具名字_MySQL客户端工具及SQL讲解
- 物化视图 sql server 1
- creo不完全约束_Creo绘图1:1输出AutoCAD配置方法详解,工程图输出再不用担心尺寸乱变!...
- 周立功开发板安装linux,极速搭建周立功IMX283A ARM Linux开发环境(1)
- dubbo源码解析-简单原理、与spring融合
- 23岁女工为600元全勤奖带伤加班3天 一周后身亡
- 怎样让Excel数据自动标记颜色?学会这一招让大家对你刮目相看
- 达梦(DM)数据库常见问题详解
- 遥感小目标检测论文梳理
- 23考研——2月份计划
- Z-Wave 700 秘钥生成、固件签名、及OTA过程
- 华为光猫HG8240的简单配置过程
- 详解Red Hat Enterprise Linux 各版本区别