WPF学习笔记1——XAML之1
参考文献:
http://msdn.microsoft.com/zh-cn/library/ms752059(v=vs.110).aspx
《Pro WPF 4.5 in C# 》
一、XAML概况
1.XAML是什么
XAML (Extensible Application Markup Language ,读作zammel) 是用于实例化.Net的一种声明性标记语言。
2.XAML有什么用
当使用Visual Studio编写WPF程序时,你设计的Window不是转化成代码,而是转换成一系列XAML标签。当你运行这个WPF程序时,这些标签代码会生成用户界面的对象。
3.为什么要学习XAML
虽然可以用Visual Studio 设计Window,但是学习XAML,可以帮助你更好地学习WPF的概念。更重要的是,要更好地完成许多WPF程序,需要我们手写XAML文件。有的开发者喜欢通过Visual Studio设计UI,再通过编辑XAML文件来调整细节。但是在某些情况下,完全手写XAML文件,可能是更好的选择。
二、XAML基础
1.基本特征
i.对象元素(element)
对象元素语法始终以左尖括号 (<) 开头。要完成对象元素标记,以右尖括号 (>) 结尾,或者用一个正斜杠后接一个右尖括号 (/>) 来完成标记。
每个XAML对象元素都与.NET的类名匹配。如:
<StackPanel>
<Button Content="Click Me"/>
</StackPanel>
例子当中,StackPanel和Button是两个对象元素。
ii.对象特性(attribute)
可在对象元素标签内,用赋值运算符 (=)设置特性。特性的值始终以包含在引号中的字符串的形式进行指定。
iii.对于对象元素的某些属性,特性语法是不可能实现的,因为无法在特性语法的引号和字符串限制内充分地表达提供属性值所必需的对象或信息。对于这些情况,可以使用另一个语法,即属性(property)元素语法<类型名称.属性名称>。通常,该标记的内容是类型的一个对象元素,属性会将该元素作为其值。 指定内容之后,必须用一个结束标记结束属性元素。 结束标记的语法为 </类型名称.属性名称>。如:
<Button Background="Blue" Foreground="Red" Content="This is a button"/>
例子当中,为Button对象元素设置了Background、Foreground、Content三个属性。
2.根元素,xmlns,xmlns:x
一个简单的XAML文件:
<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<Grid>
<Button Content="Button" HorizontalAlignment="Left" Margin="112,79,0,0" VerticalAlignment="Top" Width="75" Click="Button_Click"/> </Grid>
</Window>
i.一个XAML文件只能有一个根元素:Window,Page,Application等等。为页使用Window或Page,为外部字典使用ResourceDictionary,或为应用程序定义使用 Application。比如,当一个Window标签结束,该XAML就结束了。
ii.根元素还包含特性xmlns和xmlns:x。xmlns指明默认的XAML命名空间。对于大多数 WPF 应用程序方案,默认的 XAML 命名空间均映射到为 WPF 命名空间 http://schemas.microsoft.com/winfx/2006/xaml/presentation。
iii.xmlns:x 特性指示另外一个 XAML 命名空间,该命名空间映射 XAML 语言命名空间 http://schemas.microsoft.com/winfx/2006/xaml。该命名空间是支持 XAML 语言构造的专用 XAML 命名空间。
有关x:前缀编程构造,参阅:《XAML 命名空间 (x:) 语言功能》(http://msdn.microsoft.com/zh-cn/library/ms753327(v=vs.110).aspx)
WPF学习笔记1——XAML之1的更多相关文章
- WPF学习笔记——认识XAML
Extensible Application Markup Language,XAML是一种声明性标记语言. 一.XAML语法概述 1,与XML类似,用尖括号标记元素 <StackPanel&g ...
- WPF学习笔记2——XAML之2
三.事件处理程序与代码隐藏 例如,为一个Page添加一个Button控件,并为该Button添加事件名称Button_Click: <Page xmlns="http://schema ...
- WPF学习笔记 - 在XAML里绑定
Binding除了默认构造函数外,还有一个可以传入Path的构造函数,下面两种方式实现的功能是一样的. <TextBlock x:Name="currentFolder" D ...
- WPF学习笔记-用Expression Design制作矢量图然后导出为XAML
WPF学习笔记-用Expression Design制作矢量图然后导出为XAML 第一次用Windows live writer写东西,感觉不错,哈哈~~ 1.在白纸上完全凭感觉,想象来画图难度很大, ...
- WPF 学习笔记-在WPF下创建托盘图标
原文:WPF 学习笔记-在WPF下创建托盘图标 首先需要在项目中引用System.Windows.Forms,System.Drawing; using System; using System.Co ...
- WPF学习笔记(8):DataGrid单元格数字为空时避免验证问题的解决
原文:WPF学习笔记(8):DataGrid单元格数字为空时避免验证问题的解决 如下图,在凭证编辑窗体中,有的单元格不需要数字,但如果录入数字后再删除,会触发数字验证,单元格显示红色框线,导致不能执行 ...
- WPF 学习笔记-设置属性使窗口不可改变大小
原文:WPF 学习笔记-设置属性使窗口不可改变大小 调整Windows下的ResizeMode属性: ResizeMode = NoResize Resize属性是控制Windows是否可以改变大小, ...
- 【WPF学习笔记】之如何把数据库里的值读取出来然后显示在页面上:动画系列之(六)(评论处有学习资料及源码)
(应博友们的需要,在文章评论处有源码链接地址,以及WPF学习资料.工具等,希望对大家有所帮助) ...... 承接系列五 上一节讲了,已经把数据保存到数据库并且删除数据,本讲是把已经存在的数据从数据库 ...
- [WPF学习笔记]动态加载XAML
好久没写Blogs了,现在在看[WPF编程宝典],决定开始重新写博客,和大家一起分享技术. 在编程时我们常希望界面是动态的,可以随时变换而不需要重新编译自己的代码. 以下是动态加载XAML的一个事例代 ...
随机推荐
- Linux重定向的理解
/* 重定向的实例 dup2函数 利用filefd来代替STDOUT(标准输出流),write写入filefd的数据,重定向写出到STDOUT中: */ #include <stdio.h> ...
- 文本替换sed+字段处理cut,join+awk重新编排字段
[1]sed工具(Stream Editor)--流编辑器 sed 本身也是一个管线(管道)命令,可以分析 standard input 的啦! 而且 sed 还可以将数据进行取代.删除.新增.截取特 ...
- 【原则】常用windows开发 客户端工具 收集
1. Navicat Premium 推荐: mysql客户端, postgreSQL 客户端, Sqlite客户端 2. robomongo 推荐:mongoDB客户端
- linux和Windows下文本格式转换
1.安装转换工具:sudo apt-get install tofrodos 2.开始转换:fromdos grade.sh
- 跟我学习dubbo-ZooKeeper注册中心安装(2)
注册中心 可选方案:zookeeper.Redis 1.建议使用dubbo-2.3.3以上版本的使用zookeeper注册中心客户端 2.Zookeeper是Apache Hadoop的子项目,强度相 ...
- JavaScript之放大镜效果2
在放大图片效果的同时,我们怎么原图和放大窗体增加间隔呢? 我们只需应用一个table就行了: 源码上: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML ...
- Windows优化大师最新版 V7.99 Build 12.604发布
本文由 www.169it.com 收集整理 Windows优化大师是一款功能强大的系统工具软件,它提供了全面有效且简便安全的系统检测.系统优化.系统清理.系统维护四大功能模块及数个附加的工具软件.使 ...
- C#中winform窗体如何嵌入cmd命令窗口
解决方法一: 自己放一个文本框,改成黑色,然后输入命令,执行时,你Process.Start cmd ,此时CMD窗口不显示,然后,将CMD的返回值,再取出来,设回文本框. 如何用这种方法实时获取cm ...
- STP详解
STP详解 Write From YangWj Wednesday, March 5, 2014 一. 生成树协议 STP的主要任务是阻止在第2层网络(网桥或交换机)产生网络环路,它警惕的监视着网络中 ...
- (转)SqlServer中处理每天四亿三千万记录的
项目背景 这是给某数据中心做的一个项目,项目难度之大令人发指,这个项目真正的让我感觉到了,商场如战场,而我只是其中的一个小兵,太多的战术,太多的高层之间的较量,太多的内幕了.具体这个项目的情况,我有空 ...