WPF学习里程(二) XAML基础
1.什么是XAML?
官方语言:
XAML是eXtensible Application Markup Language的英文缩写,相应的中文名称为可扩展应用程序标记语言,它是微软公司为构建应用程序用户界面而创建的一种新的描述性语言。
人话:
XAML是一种界面开发语言,跟英语、中文一样,不过人家是用来开发界面的啦~
具体长什么样呢?如下图

2.为什么需要XAML?
随着大众审美的提升,对软件界面要求也严格了很多,这就避免不了程序员和设计师的合作。
合作一般是这样开展:
1.需求分析结束后,程序猿按照需求分析对照需求设计一个出版界面(很low的那种),然后精力主要放在功能开发上。
2.与此同时,设计师对照需求,考虑用户体验,使用专门的设计工具(PS啦),设计出高大上的界面。
3.最后,猿们按照设计师的要求,使用编程语言实现软件的UI。
但是,你懂的,理想跟现实往往有所差距,这样的合作经常会出现“沟通问题”,谁说需求就不会变的。。需求一变,嘿嘿。。
不是设计师跟不上逻辑变更,就是程序员未能完整按照设计员的要求实现界面,这无关对错,
只是"合作的成本就不可能为零"--猛哥经典语录。
所以为了减少合作成本,有一种解决方案,就是将上述的串行,改为并行,也就是说,无需等待上一个人的完成,而是设计师和猿
同步开发。所以就创造了这牛批的界面开发语言---XML.
原来的创作思路是网络程序开发,可以使用HTML、CSS、JS直接生成UI,程序员则在此基础上进行开发,所以为了把这种模
式从网络端移植到桌面应用程序,XAML诞生啦(是不是能理解为什么XAML很像xml和Html了~)。
3.XAML有哪些基础知识?
然后我们了解一下XAML基础
XAML文档中的每个元素都映射为.NET类的一个实例。元素名称也完全对应于类名,如Button,即为Button对象,且支持嵌套。
像上图的Grid(网格)里面就可以嵌套其他元素。
我们一起来解析上面的文档截图。包含有<Window>元素和<Grid>元素,这两个都是顶级元素,可以放置所有控件。
所有XAML文档都只能有一个顶级元素。上述文档的意思就是创建一个标题为Window1的窗口,中间放置一个Grid,然后Grid中嵌套
一个Button。
接下来的就有小伙伴好奇了,xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"这么长的一串是啥?
这其实是XAML的名称空间,xmlns专门用来声明名称空间,包含了所有WPF类,包括用来构建用户界面的控件。
可以大致理解成URI指明网站的路径亦或者文件夹路径。在使用visual studio创建WPF项目时会自动创建几条默认引用的名称空间。
WPF学习里程(二) XAML基础的更多相关文章
- WPF学习笔记1——XAML之1
参考文献: http://msdn.microsoft.com/zh-cn/library/ms752059(v=vs.110).aspx <Pro WPF 4.5 in C# > 一.X ...
- WPF学习笔记——认识XAML
Extensible Application Markup Language,XAML是一种声明性标记语言. 一.XAML语法概述 1,与XML类似,用尖括号标记元素 <StackPanel&g ...
- Solr学习之二-Solr基础知识
一 基本说明 简单来说Solr是基于Lucene的高性能的,开源的Java企业搜索服务器.Solr可以看作一个Web app,运行在tomcat或Jetty这类HTTP服务器上, 底层是一个基于Luc ...
- Apache Thrift学习之二(基础及原理)
Apache Thrift 是 Facebook 实现的一种高效的.支持多种编程语言的远程服务调用的框架.本文将从 Java 开发人员角度详细介绍 Apache Thrift 的架构.开发和部署,并且 ...
- WPF学习笔记2——XAML之2
三.事件处理程序与代码隐藏 例如,为一个Page添加一个Button控件,并为该Button添加事件名称Button_Click: <Page xmlns="http://schema ...
- ES6学习(二)基础命令
一.Let 和 const 作用域的概念:在es5之前是有两个作用域,一个是全局作用域,另外一个是函数作用域,在es6中就多了这样一个块作用域.在这里let 和 const 就是传说中的块作用域,它 ...
- WPF学习一:XAML的资源(Resources)结构
一个初学者,把知识做个积累,如果有不对的地方,还请高手指出,谢谢! 先看一段代码:(下面是以Window WPF进行讲解,如果是Web 的话就把<Window改为<Page 而如果是 Us ...
- WPF学习笔记二 依赖属性实现原理及性能分析
在这里讨论依赖属性实现原理,目的只是学习WPF是怎么设计依赖属性的,同时更好的使用依赖属性. 首先我们来思考一个简单的问题:我们希望能验证属性的值是否有效,属性变更时进行自己的处理.回顾一下.net的 ...
- HTML5学习笔记二 HTML基础
一.HTML 标题 HTML 标题(Heading)是通过<h1> - <h6> 标签来定义的. <h1>标题一</h1> <h2>标题二& ...
随机推荐
- Code-Review-Maven编译(第三方jar包引用)
Code-Review-SpringBoot-Maven编译(第三方jar包引用) 在使用maven编译项目时,有时候咱们可能会使用一些第三方的jar包依赖库,比如第三方支付类的接入,大多出于安全考虑 ...
- .net core 和 WPF 开发升讯威在线客服与营销系统:(插曲)一次端口攻击行为的分析与应对
本系列文章详细介绍使用 .net core 和 WPF 开发 升讯威在线客服与营销系统 的过程.本产品已经成熟稳定并投入商用. 在线演示环境:https://kf.shengxunwei.com 注意 ...
- [leetcode]516. Longest Palindromic Subsequence最大回文子序列
Given a string s, find the longest palindromic subsequence's length in s. You may assume that the ma ...
- 「译」 .NET 5 新增的Http, Sockets, DNS 和 TLS 遥测
.NET 一直在稳定的增加和改善对应用程序进行跨平台的诊断分析,在.NET Core 3.0, 我们看到了 EventCounters 的介绍,用于观察和分析指标测量. 我最近在几个 .NET Cor ...
- 【机制】JavaScript的原型、原型链、继承
1.原型和原型链的概念 js在创建一个对象时,比如叫 obj,都会给他偷偷的加上一个引用,这个引用指向的是一个对象,比如叫 yuanxing, 这个对象可以给引用它的对象提供属性共享,比如:yuanx ...
- 数据库的查询(结合YGGL.sql)
(如有错误,欢迎指正!) 1.select 语句查询 (1)查询employees表员工部门号和性别,要求消除重复行. mysql> select distinct 员工部门号,性别 from ...
- RMI之由浅入深(一)
0x01.什么是RMI RMI(Remote Method Invocation)即Java远程方法调用,RMI用于构建分布式应用程序,RMI实现了Java程序之间跨JVM的远程通信.顾名思义,远程方 ...
- .NET 云原生架构师训练营(模块二 基础巩固 RabbitMQ HelloWorld)--学习笔记
2.6.3 RabbitMQ -- HelloWorld 发送端 接收端 rabbitmq container 发送信息 https://www.rabbitmq.com/tutorials/tuto ...
- python+sklearn+kaggle机器学习
python+sklearn+kaggle机器学习 系列教程 0.kaggle 1. 初级线性回归模型机器学习过程 a. 提取数据 b.数据预处理 c.训练模型 d.根据数据预测 e.验证 今天是10 ...
- ssh升级以及ssh: symbol lookup error: ssh: undefined symbol: EVP_aes_128_ctr错误处理
1.解压安装openssl包:(不能卸载openssl,否则会影响系统的ssl加密库文件,除非你可以做两个软连接libcryto和libssl) # tar -zxvf openssl-1.0.1.t ...