XAML实例教程系列 - 对象和属性(二)
XAML实例教程系列 - 对象和属性
2012-05-22 14:18 by jv9, 1778 阅读, 6 评论, 收藏, 编辑
XAML是一种敏感型,声明性语言,对于字符大小写有严格的约束,在项目中,以".xaml"作为文件扩展名。XAML页面和ASP.NET的ASPX页面类似,都具有一个后台代码文件控制页面逻辑处理,这一机制将用户界面设计和后台代码设计分割,这意味着项目美工人员可以使用Expression Blend进行XAML用户界面设计,同时后台代码开发人员可在Visual Studio中共享该XAML文件,并同时设计其后台代码。
XAML学习方法和经验
在开始介绍XAML基础前,首先创建一个实例项目,通过实例项目代码帮助学习XAML语言。在Visual Studio 11中创建一个Windows 8 Metro Style空白页面项目,项目名“XamlGuide",


XAML基础 - Object (对象)
在XAML代码中,一个Element(元素)通常是一个Object(对象),在代码中映射对应.Net类。简单理解,在XAML中声明一个Element元素,也就是对相应公共语言运行类库进行一次实例化操作。
例如,在XAML中声明一个文本框,代码如下:
XAML基础 - Property (属性)
在面向对象程序开发中,我们所提及的属性,即是指对象的属性。而开发过程中,对象属性也是最重要,最常用的概念。 在XAML代码中,允许开发人员声明“元素对象”,不同的“元素对象”对应着多个对象属性。例如,一个TextBox文本框,有背景属性,宽度属性,高度属性等。为了适应实际项目的需求,XAML提供三种方法设置属性,分别是:
1.通过Attribute特性设置对象属性;2.通过Property属性元素设置对象属性;3.通过隐式数据集设置对象属性;
Attributes特性的概念

其中,属性设置器可以设置为较为复杂的对象元素,例如布局控件元素,自定义控件元素等。



在上面的示例代码中,按钮的Content内容属性以<元素对象.属性>的形式出现在<Button></Button>中,属性值设置器被StackPanel布局控件替代,在StackPanel布局控件中,分别定义了Image控件和TextBlock控件,用来显示图片和按钮文本内容,其运行效果如下:


其运行效果和Attribute特性设置按钮内容相同。Property属性元素是用户界面设计中最常用的属性设置方法,在随后的章节中会经常出现。
为了简化XAML代码复杂性,提高代码易读性,XAML提供隐式数据集设置对象属性方法。例如,在XAML中为一个ComboBox组合框赋值,传统代码如下:


从对比以上代码可以看出<ComboBox.Items>被删除后,<ComboBox>仍旧可以对ComBoxItem进行赋值操作。其运行结果和使用Property属性元素属性赋值相同:


另一个隐式数据集属性赋值的例子,在XAML代码可以直接生成渐变背景效果,实现方法是使用画刷类的GradientStops属性控制,在下面的代码中,我们尝试生成一个蓝色背景渐变效果:

在以上代码中,对<LinearGradientBrush.GradientStops>属性赋值,使用<GradientStopCollection>数据集描述渐变效果。如果使用隐式数据集属性赋值方法,则可以修改以上代码为:

两段代码运行结果相同:


今天暂时介绍到这里,欢迎留言讨论。
![]() |
源代码下载 |
欢迎大家留言交流,或者加入QQ群交流学习:
22308706(一群) 超级群500人
37891947(二群) 超级群500人
100844510(三群) 高级群200人
32679922(四群) 超级群500人
23413513(五群) 高级群200人
32679955(六群) 超级群500人
88585140(八群) 超级群500人
128043302(九群 企业应用开发推荐群) 高级群200人
101364438(十群) 超级群500人
68435160(十一群 企业应用开发推荐群)超级群500人
XAML实例教程系列 - 对象和属性(二)的更多相关文章
- XAML实例教程系列 - 依赖属性和附加属性(四)
XAML实例教程系列 - 依赖属性和附加属性 2012-06-07 13:11 by jv9, 1479 阅读, 5 评论, 收藏, 编辑 微软发布Visual Studio 2012 RC和Wind ...
- XAML实例教程系列 - 类型转换器(Type Converter)七
XAML实例教程系列 - 类型转换器(Type Converter) 分类: Windows 8 Silverlight2012-06-25 13:40 961人阅读 评论(0) 收藏 举报 butt ...
- XAML实例教程系列 - 资源(Resources)
Kevin Fan分享开发经验,记录开发点滴 XAML实例教程系列 - 资源(Resources) 2012-08-10 12:47 by jv9, 1386 阅读, 1 评论, 收藏, 编辑 在Wi ...
- XAML实例教程系列 - XAML传递参数到值转换类实例 八
Kevin Fan分享开发经验,记录开发点滴 XAML实例教程系列 - XAML传递参数到值转换类实例 2012-06-28 05:25 by jv9, 508 阅读, 0 评论, 收藏, 编辑 继上 ...
- XAML实例教程系列 - 事件(Event) 五
Kevin Fan分享开发经验,记录开发点滴 XAML实例教程系列 - 事件(Event) 2012-06-19 01:36 by jv9, 1727 阅读, 7 评论, 收藏, 编辑 Events, ...
- XAML实例教程系列 - 命名空间(NameSpace) 三
XAML实例教程系列 - 命名空间(NameSpace) 2012-05-28 14:14 by jv9, 2205 阅读, 10 评论, 收藏, 编辑 上一篇曾提及XAML中,每个对象元素的声明是对 ...
- XAML实例教程系列 - 开篇(一)
XAML实例教程系列 - 开篇 2012-05-14 11:47 by jv9, 5588 阅读, 8 评论, 收藏, 编辑 去年,曾答应银光中国论坛的朋友推出一个关于XAML语言实例教程系列,帮助学 ...
- XAML实例教程系列 - 标记扩展(Markup Extensions) 六
XAML实例教程系列 - 标记扩展(Markup Extensions) 分类: Windows 8 Silverlight2012-06-21 13:00 1139人阅读 评论(0) 收藏 举报 扩 ...
- Silverlight,Windows 8应用开发实例教程系列汇总
Kevin Fan分享开发经验,记录开发点滴 Silverlight,Windows 8应用开发实例教程系列汇总 2012-06-18 01:05 by jv9, 2145 阅读, 3 评论, 收藏, ...
随机推荐
- 梦想CAD控件网页版标注样式
增加标注样式 _DMxDrawX::AddDimStyle 增加一个新的标注样式,如果当前已经有指定名的标注样式,就直接失败返回.详细说明如下: 参数 说明 BSTR pszName 新增加的标注样式 ...
- C: 字符数组中的空去掉
#include <stdio.h> #include <string.h> int main() { char a[50] = "nearby! "; i ...
- 通过HTTP的HEADER完成各种骚操作
作为一名专业的切图工程师,我从来不care网页的header,最多关心Status Code是不是200.但是HEADER真的很重要啊,客户端从服务器端获取内容,首先就是通过HEADER进行各种沟通! ...
- Qt 如何处理密集型耗时的事情
有时候需要处理一些跟界面无关的但非常耗时的事情,这些事情跟界面在同一个线程中,由于时间太长,导致界面无法响应,处于“假死”状态.例如:在应用程序中保存文件到硬盘上,从开始保存直到文件保存完毕,程序不响 ...
- 我的第一个随笔——MarkDown的简单用法!
目录 我的第一个笔记 1. 学习简单的markdown语法 1.1 标题 1.2 引用 1.3 倾斜与加粗 1.4无序列表 1.5有序列表 1.6图片和网页 1.7分割线 1.8代码块 1.9结尾 2 ...
- 魂酥的LNOI2019滚粗记
$Day -???$ 高一下终于开始了 在开学文化课考试的水题之下混了个(成绩)前排 于是我便油然而生一种自信 我!要!进!省!队! 讲句真话我这么想的时候连自己都觉得自己是个十足的沙雕 我又不是zw ...
- Linux下“任务管理器”
也不知道linux叫不叫任务管理器. Ctrl+Alt+T打开终端,输入top,就会出现一堆东西. 如果有个东西未响应了,就可以输入k+这个进程的pid就可以杀死它. https://blog.csd ...
- 爬虫之Requests库
官方文档:http://cn.python-requests.org/zh_CN/latest/ 一.引子 import requests resp = requests.get("http ...
- keepalived(nginx的高可用)安装文档
1. 安装环境 su - root yum -y install kernel-devel* yum -y install openssl-* yum -y install popt-devel yu ...
- 洛谷 2434 [SDOI2005]区间
[题解] 鲜活的大水题... 把区间排个序然后瞎搞就可以了,发现现在区间的左端点比之前区间的最大的右端点还大,那就增加一个答案区间.每次更新目前最大右区间. #include<cstdio> ...