XAML实例教程系列 – 对象和属性
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人
转载于:https://blog.51cto.com/kevinfan/872476
XAML实例教程系列 – 对象和属性相关推荐
- XAML实例教程系列 - 资源(Resources)
在Windows 8 Metro应用开发中,XAML主要用于应用界面设计,无论是开发人员还是设计人员经常会设计自定义用户界面或者控件行为,其中会涉及到不同方面的代码设计,例如控件模板,控件样式,动画设 ...
- XAML实例教程系列 - 类型转换器(Type Converter)
在XAML中每一个对象元素映射一个实例,而实例属性可以通过特性(Attributes)进行赋值.在实际项目开发中,对象元素的属性值可以是不同数据类型,根据需求不同,经常需要对数据类型进行转换,就需要使 ...
- XAML实例教程系列 - 命名空间(NameSpace) 三
XAML实例教程系列 - 命名空间(NameSpace) 2012-05-28 14:14 by jv9, 2205 阅读, 10 评论, 收藏, 编辑 上一篇曾提及XAML中,每个对象元素的声明是对 ...
- XAML实例教程系列 - 命名空间(NameSpace)
上一篇曾提及XAML中,每个对象元素的声明是对.NET类进行一次实例化操作.XAML作为声明类语言,如何识别对象元素,并如何在.NET Framework中找到对应映射类呢?本篇将引入命名空间(Nam ...
- Windows 8实例教程系列 - 布局控制
Windows 8实例教程系列 - 布局控制 原文:Windows 8实例教程系列 - 布局控制 与传统应用类似,Windows store应用允许开发人员通过布局控件管理应用UI. 本篇将讨论Win ...
- Windows 8实例教程系列 - 理解应用框架
Windows 操作系统之所以风靡世界,是因为其"易学易用",从用户的角度出发,让数以万计的非IT人员使用计算机实现娱乐,工作等目的.Windows 8继承Windows桌面的优点 ...
- Windows 8实例教程系列 - 开篇
2012年10月26日,微软发布Windows 8操作系统以及自主品牌平板电脑Surface,Windows作为世界上最流行的操作系统,发布一周内,下载量超过400万.毋庸置疑 Windows Sto ...
- Xamarin XAML语言教程使用使用Progress属性设置当前进度
Xamarin XAML语言教程使用使用Progress属性设置当前进度 开发者除了可以在XAML中使用Progress属性设置进度条的当前进度外,还可以在代码隐藏文件中使用Progress属性来设置 ...
- Xamarin XAML语言教程隐藏文件使用Progress属性设置进度条
Xamarin XAML语言教程隐藏文件使用Progress属性设置进度条 Xamarin XAML语言教程隐藏文件中使用Progress属性设置进度条进度,开发者除了可以在XAML中使用Progre ...
最新文章
- treeview递归绑定的两种方法
- 对python编程做介绍-python002-编程语言介绍
- 2012服务器系统关闭网络共享,提供网络服务的前提,Windows Server 2012如何更改高级共享设置...
- 梯度下降法优化目标函数_如何通过3个简单的步骤区分梯度下降目标函数
- python连接数据库oracle_python连接oracle数据库
- 《SAP从入门到精通》——1.2 SAP系统实施思想
- 图像分类以及经典的分类模型
- 【渝粤教育】电大中专中药学基础 (2)作业 题库
- PS卸载不彻底,ADMUI3删除不掉怎么办
- 韩顺平循序渐进学java坦克大战爆炸图
- 华为云SSL证书申请流程
- 京东大数据平台进化之路
- 修改Win7硬盘分区盘符出现“虚拟磁盘管理器-参数错误”
- 基于SG90舵机(伺服电机)的操作笔记
- 2012网站服务器目录磁盘满了,服务器磁盘异常爆满的原因及解决方法
- 新版同城婚恋交友网源码
- 东华大学计算机学院刘国华,东华大学计算机科学与技术学院研究生导师简介-刘国华??(教授)...
- ECSHOP goods表字段分析
- php对接海康api样例
- Win10下安装Spark的尝试总结(尚未出坑)
热门文章
- 已放弃 (核心已转储)_辽宁已放弃师弟!CBA公布外援优先续约名单:北京队不在列...
- 通过修改EIP寄存器实现强行跳转并且注入DLL到目标进程里
- Building Fire Stations 39届亚洲赛牡丹江站B题
- hdu4771 水搜索(状态压缩+bfs)
- 【Groovy】Groovy 方法调用 ( 使用 对象名.@成员名 访问 Groovy 对象成员 )
- 【Android Gradle】安卓应用构建流程 ( 资源文件编译 )
- 【Android 应用开发】Android 返回堆栈管理 ( 默认启动模式 | 栈顶复用启动模式 | 栈内复用启动模式 | 单实例启动模式 | CLEAR_TOP 标识 )
- 【微信开发】微信公众号开发 之 编辑模式使用
- 使用SQLite学习SQL
- BZOJ.4160.[NEERC2009]Exclusive Access 2(状压DP Dilworth定理)