参考文献:

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的更多相关文章

  1. WPF学习笔记——认识XAML

    Extensible Application Markup Language,XAML是一种声明性标记语言. 一.XAML语法概述 1,与XML类似,用尖括号标记元素 <StackPanel&g ...

  2. WPF学习笔记2——XAML之2

    三.事件处理程序与代码隐藏 例如,为一个Page添加一个Button控件,并为该Button添加事件名称Button_Click: <Page xmlns="http://schema ...

  3. WPF学习笔记 - 在XAML里绑定

    Binding除了默认构造函数外,还有一个可以传入Path的构造函数,下面两种方式实现的功能是一样的. <TextBlock x:Name="currentFolder" D ...

  4. WPF学习笔记-用Expression Design制作矢量图然后导出为XAML

    WPF学习笔记-用Expression Design制作矢量图然后导出为XAML 第一次用Windows live writer写东西,感觉不错,哈哈~~ 1.在白纸上完全凭感觉,想象来画图难度很大, ...

  5. WPF 学习笔记-在WPF下创建托盘图标

    原文:WPF 学习笔记-在WPF下创建托盘图标 首先需要在项目中引用System.Windows.Forms,System.Drawing; using System; using System.Co ...

  6. WPF学习笔记(8):DataGrid单元格数字为空时避免验证问题的解决

    原文:WPF学习笔记(8):DataGrid单元格数字为空时避免验证问题的解决 如下图,在凭证编辑窗体中,有的单元格不需要数字,但如果录入数字后再删除,会触发数字验证,单元格显示红色框线,导致不能执行 ...

  7. WPF 学习笔记-设置属性使窗口不可改变大小

    原文:WPF 学习笔记-设置属性使窗口不可改变大小 调整Windows下的ResizeMode属性: ResizeMode = NoResize Resize属性是控制Windows是否可以改变大小, ...

  8. 【WPF学习笔记】之如何把数据库里的值读取出来然后显示在页面上:动画系列之(六)(评论处有学习资料及源码)

    (应博友们的需要,在文章评论处有源码链接地址,以及WPF学习资料.工具等,希望对大家有所帮助) ...... 承接系列五 上一节讲了,已经把数据保存到数据库并且删除数据,本讲是把已经存在的数据从数据库 ...

  9. [WPF学习笔记]动态加载XAML

    好久没写Blogs了,现在在看[WPF编程宝典],决定开始重新写博客,和大家一起分享技术. 在编程时我们常希望界面是动态的,可以随时变换而不需要重新编译自己的代码. 以下是动态加载XAML的一个事例代 ...

随机推荐

  1. Android Activity的启动过程

    文章编辑的太长了,请移步我的csdn博客:http://blog.csdn.net/xyh269 Android Activity的启动过程原文链接:http://blog.csdn.net/xyh2 ...

  2. Android学习笔记⑤——UI组件的学习TextView相关

    TextView是一个强大的视图组件,直接继承了View,同时也派生出了很多子类,TextView其作用说白了就是在布局中显示文本,有点像Swing编程中的JLabel标签,但是他比JLabel强大的 ...

  3. 51nod 数数字(水题)

    题目链接: 数数字 基准时间限制:1 秒 空间限制:262144 KB 统计一下 aaa ⋯ aaa n个a × b 的结果里面有多少个数字d,a,b,d均为一位数. 样例解释: 3333333333 ...

  4. C#导出数据至excel模板

    开源分享最近一个客户要做一个将数据直接输出到指定格式的Excel模板中,略施小计,搞定 其中包含了对Excel的增行和删行,打印预览,表头,表体,表尾的控制 using System; using S ...

  5. html&css静态页面

    状态不好,整晚未眠. 想着敲点代码,遇着复杂的又自己生气,所以就敲了博客园的,总是很纠结"哪样的文字算标题算段落或要用span""什么时候用div比较好"&qu ...

  6. CSS hacker(兼容IE6、7、8)

    <meta http-equiv="X-UA-Compatible"  content="IE=edge,chrome=1">这行代码是永远以最新的 ...

  7. 常用的Linux系统调用命令

    常用的Linux系统调用命令   下面一些函数已经过时,被新的更好的函数所代替了(gcc在链接这些函数时会发出警告),但因为兼容的原因还保留着,这些函数将在前面标上“*”号以示区别.   一.进程控制 ...

  8. PHP浮点数的精度

    在百度知道上看到这么一个问题 var_dump((0.3-0.2)==0.1); 结果是:false 后来查查手册,原来是浮点数的精度问题.那么0.3-0.2-0.1等于多少呢,结果:2.775557 ...

  9. 二.CSS的伪类

    CSS的伪类(Pseudo-classes)分为两种:UI伪类和结构化伪类,伪类一般用于向某些选择器添加特殊的效果,伪类选择符用"  : "进行标示,如果是“ ::  ” 表示CS ...

  10. 常用的HTML标签

    文本样式标签 列表标签 有序列表 语法格式: <ol> <li></li> <li></li> <li></li> ...