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>标题二& ...
随机推荐
- Java源码研究001:关于List的并发修改异常
这个就是实现一个简单的 ArrayList 的遍历,如果存在一个为"aaa"的值,就添加一个"ccc" package Array; import java.u ...
- CentOS7下常用安装服务软件yum方式的介绍
简介:介绍yum软件包的管理并配置本地yum源 yum安装:基于 C/S 架构,yum安装称之为傻瓜式安装 yum安装优点:方便快捷,不用考虑包依赖,自动下载软件包. yum安装缺点:人为无法干预,无 ...
- Raft算法系列教程4:日志不一致的解决
网络不可能一直处于正常情况,因为Leader或者某个Follower有可能会崩溃,从而导致日志不能一直保持一致.因此存在以下三种情况: (1)Follower缺失当前Leader上存在的日志条目.(2 ...
- 关于Byte(1) 与int (1) 比较原理
最近笔者遇到一个问题 Integer cameraType=1 if (cameraType.intValue() == SourceTypeEnum.ANFANG.getType(){ } 枚举值是 ...
- erlang开发环境(IDE)搭建
1.首先推荐:intellij idea http://www.open-open.com/news/view/44c90e 2.webstorm: http://plugins.jetbrains. ...
- Android基本组件TextView和EditView
1.TextView 用于在屏幕上显示文本,可以显示单行文本,多行文本,和带图像的文本. 常用xml属性 (1)android:autoLink,用于指定是否将指定的文本转换为可单机的超链接形式,其属 ...
- 记一次SqlServer大表查询语句优化和执行计划分析
数据库: sqlserver2008r2 表: device_data 数据量:2000w行左右 表结构 CREATE TABLE [dbo].[device_data]( [Id] [int] ID ...
- CentOS8设置网络镜像安装源
CentOS8通过引导盘+网络镜像镜像源安装系统,设置网络镜像安装源为: mirrors.aliyun.com/centos/8/BaseOS/x86_64/os
- 为Github仓库添加Github Actions实现持续集成: Android apk自动编译发布以及github pages同步推送coding.net
内容转载自我的博客 目录 说明 1. 编写Android项目的CI配置文件 2. 编写Jekyll项目的CI配置文件 2.1 配置coding.net 2.2 配置github 2.3 自动部署到co ...
- windows环境搭建
GO语言环境配置: 安装GOlang,添加到环境变量path 默认会创建环境变量GOPATH,其中存放代码和编译后的工程文件等,用户可以根据个人需要,在别的路径下创建gopath,并添加到环境变量中. ...