xaml2009新特性
2009-12-03 16:05 Clingingboy 阅读(881) 评论(1) 编辑 收藏 举报New WPF Features
http://blogs.msdn.com/llobo/archive/2009/11/25/concluding-new-wpf-features-series.aspx
基本的特性,大家参考一下,若有遗漏,还请补充
一.支持CLR基本类型
http://schemas.microsoft.com/winfx/2006/xaml命名空间默认支持CLR基本类型
之前要在xaml中使用基本类型,必须引用其命名空间
.net4.0之前
<s:Stringxmlns:s="clr-namespace:System;assembly=mscorlib">Foo</s:String>
.net4.0之后,无需再引用命名空间了,进行了简化
<x:String>Foo</s:String>
基本类型包括
• <x:String>
• <x:Char>
• <x:Single>
• <x:Double>
• <x:Boolean>
• <x:Byte>
• <x:Int16>
• <x:Int32>
• <x:Int64>
• <x:Decimal>
• <x:Object>
• <x:Uri>
• <x:TimeSpan>
• <x:Array>
http://blogs.msdn.com/llobo/archive/2009/11/05/xaml-2009-features-built-in-types.aspx
二.泛型支持(x:TypeArguments)
要在xaml中定义动态泛型对象
<ObservableCollectionx:TypeArguments='local:Person'xmlns='clr-namespace:System.Collections.ObjectModel;assembly=System' > <local:Person Name='Tom' Age='21' /> </ObservableCollection>
http://blogs.msdn.com/llobo/archive/2009/11/19/xaml-2009-features-generics-support.aspx
三.非默认构造函数创建对象((x:Arguments)
之前在xaml中的对象,只能是默认构造函数,灵活性降低,现在
<local:Person> <x:Arguments> <x:String>Tom</x:String> <x:Int32>21</x:Int32> </x:Arguments> </local:Person>
四.支持静态方法创建对象
如创建一个新的Guid,之间是无法做到的,现在
(1)对象自身静态方法
<p:Guid x:FactoryMethod='NewGuid'/>
(2)其他对象静态方法,可传方法参数
<coll:List x:Key='list' x:TypeArguments='x:String' x:FactoryMethod='local:Factory.CreateStringList'> <x:Arguments> <x:String>Mickey,Donald</x:String> </x:Arguments> </coll:List>
http://blogs.msdn.com/llobo/archive/2009/11/20/xaml-2009-features-factorymethod-arguments.aspx
五.已命名对象引用(x:Reference)
之前绑定写法
<Label Target='{Binding ElementName=firstNameBox}' >_Target</Label> <TextBox Name='firstNameBox'>Uses Binding</TextBox>
现在
<Label Target= '{x:Reference secondNameBox}'>_Second Target</Label>
六.自定义标记扩展
这在之前版本就已经支持了,重在简化开发,差不多就是三行代码可以并成一行代码,不过不是内置的api,大家都懒的去学,有时候没必要,属于自己做着玩的,不过有时候也是必要的,可以关注一下
http://www.cnblogs.com/Clingingboy/archive/2009/02/02/1382444.html
http://blogs.msdn.com/llobo/archive/2009/11/11/xaml-2009-features-xaml-event-handling.aspx
七.动态解析xaml
上面说过,vs2010 beta2还不支持编译以上特性,可以通过动态解析来实现上面功能
http://blogs.msdn.com/llobo/archive/2009/11/09/xaml-2009-features-node-loop-flexibility.aspx
.net 4.0版本之后,最大的变化在于将xaml独立了出来(System.Xaml),以上特性只是对xaml进行稍微的增强,其他的可以通过自定义标记扩展来实现.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现