Silverlight 4中XAML解析的示例分析
这篇文章主要介绍Silverlight 4中XAML解析的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
1. 控件内容直接显示
相信大家还记得,在Silverlight 3版本中,控件的文本内容,通常都是使用一个属性来表示,例如:
<TextBox Text="文本框"></TextBox> <CheckBox Content="我是CheckBox"></CheckBox> <TextBlock Text="显示文本"></TextBlock> <Button Content="点击提交"></Button>
而以上的表达方式和WPF的XAML语法表达方式是不一致的,项目移植时会出现异常。在Silverlight 4中,XAML在支持Silverlight 3版本格式的同时,还增加了新的表示方法,如下:
<TextBox>文本框</Button> <CheckBox>我是CheckBox</CheckBox> <TextBlock>显示文本</TextBlock> <Button>点击提交</Button>
2. 文本空格显示控制
在Silverlight 3中,XAML语法解析显示文本空格,当输入文本如下代码:
<Grid x:Name="LayoutRoot"> <TextBox> <TextBox.Text> 这是Silverlight 3 China测试程序 测试空格. </TextBox.Text> </TextBox> </Grid>
则显示结果如下:
而在Silverlight 4中,XAML语法解析器允许开发人员控制文本空格的输出,在支持Silverlight 3版本格式下,进行了改进。如以上相同代码,在Silverlight 4中显示效果如下:
如果你想在Silverlight 4中实现Silverlight 3的输出效果,可以使用xml:space="Preserve",即可。
<Grid x:Name="LayoutRoot"> <TextBox xml:space="preserve"> <TextBox.Text> 这是Silverlight 3 China测试程序 测试空格. </TextBox.Text> </TextBox> </Grid>
3. 支持XAML自定义IDictionaries
Silverlight 3中,x:Key仅支持添加对象资源如下:
<object.Resources> <object x:Key="stringKeyValue".../> </object.Resources>
在Silverlight 4中,允许开发人员添加任何类型和属性的成员到Dictionary。这对于复杂的XAML项目有很大的帮助,无论是性能上,还是使用上。详细请看MSDN:http://msdn.microsoft.com/en-us/library/cc189012(VS.95).aspx
<customIDictionary> <object x:Key="stringKeyValue".../> </customIDictionary>
4. 命名空间的引用简洁化
在Silverlight早期版本,如果使用不同的类库或者是使用不同版本的Silverlight Toolkit,开发人员必须在每个页面头部定义指定的命名空间。Silverlight 4中,支持XmlnsDefinitionAttribute映射指定命名空间类库,允许开发人员定义统一的共享名称,方便类库命名空间引用,减少代码输入。详细可以参考MSDN:http://msdn.microsoft.com/en-us/library/system.windows.markup.xmlnsdefinitionattribute(v=VS.95).aspx
5. XAML错误异常输入
在早期Silverlight开发过程中,XAML异常信息提示是最薄弱,也是Silverlight官方论坛投诉最多的一部分。Silverlight 4中增加许多XAML异常错误信息提示,以及具体错误信息描述,这点和WPF开发环境很相似。
以上是“Silverlight 4中XAML解析的示例分析”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网行业资讯频道!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341