Silverlight 4中XAML解析的变化

开发 后端 前端
Silverlight 4给我们带来了很多改变,包括有类库引用的改变、XAML的改变等等。文章总结了Silverlight 4中XAML解析的变化,这些变化给开发人员带来了便携的开发方式,同时也提高了开发效率。

与Silverlight 3相比,Silverlight 4给我们带来了很多开发的新特性,开发者也经常会在开发过程中发现一些变化,有类库引用的改变,有XAML的改变等等,这些变化不仅仅给开发人员带来了便携的开发方式,同时也提高了开发效率。

关于Silverlight 4更多内容,51CTO推荐专题: 一步一步学Silverlight

1. 控件内容直接显示

相信大家还记得,在Silverlight 3版本中,控件的文本内容,通常都是使用一个属性来表示,例如:

  1. <TextBox Text="文本框"></TextBox> 
  2. <CheckBox Content="我是CheckBox"></CheckBox> 
  3. <TextBlock Text="显示文本"></TextBlock> 
  4. <Button Content="点击提交"></Button> 

而以上的表达方式和WPF的XAML语法表达方式是不一致的,项目移植时会出现异常。在Silverlight 4中,XAML在支持Silverlight 3版本格式的同时,还增加了新的表示方法,如下:

  1. <TextBox>文本框</Button> 
  2. <CheckBox>我是CheckBox</CheckBox> 
  3. <TextBlock>显示文本</TextBlock> 
  4. <Button>点击提交</Button> 

2. 文本空格显示控制

在Silverlight 3中,XAML语法解析显示文本空格,当输入文本如下代码:

  1. <Grid x:Name="LayoutRoot"> 
  2.         <TextBox> 
  3.  
  4.             <TextBox.Text> 
  5.  
  6.                 这是Silverlight 3  
  7.  
  8.           China测试程序  
  9.  
  10.           测试空格.  
  11.  
  12.             </TextBox.Text> 
  13.  
  14.         </TextBox> 
  15.     </Grid> 

则显示结果如下:

显示结果

而在Silverlight 4中,XAML语法解析器允许开发人员控制文本空格的输出,在支持Silverlight 3版本格式下,进行了改进。如以上相同代码,在Silverlight 4中显示效果如下:

Silverlight 4中显示效果

如果你想在Silverlight 4中实现Silverlight 3的输出效果,可以使用xml:space="Preserve",即可。

  1. <Grid x:Name="LayoutRoot"> 
  2.         <TextBox xml:space="preserve"> 
  3.  
  4.             <TextBox.Text> 
  5.  
  6.                 这是Silverlight 3  
  7.  
  8.           China测试程序  
  9.  
  10.           测试空格.  
  11.  
  12.             </TextBox.Text> 
  13.  
  14.         </TextBox> 
  15.     </Grid> 

3. 支持XAML自定义IDictionaries

Silverlight 3中,x:Key仅支持添加对象资源如下:

  1. <object.Resources> 
  2.   <object x:Key="stringKeyValue".../> 
  3. </object.Resources> 

在Silverlight 4中,允许开发人员添加任何类型和属性的成员到Dictionary。这对于复杂的XAML项目有很大的帮助,无论是性能上,还是使用上。详细请看MSDN:http://msdn.microsoft.com/en-us/library/cc189012(VS.95).aspx

  1. <customIDictionary> 
  2.   <object x:Key="stringKeyValue".../> 
  3. </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的博客,

原文地址:http://www.cnblogs.com/jv9/archive/2010/06/01/1748738.html

【编辑推荐】

  1. 详解Silverlight 4中的数据绑定
  2. 浅析Silverlight 4中的高速通信
  3. Silverlight 4十大诱人新特性 速度提升一倍
  4. Silverlight 4.0新增功能大详解 
责任编辑:王晓东 来源: 博客园
相关推荐

2012-02-02 16:32:23

Silverlight控件模型分类

2009-11-26 13:12:16

Silverlight

2010-04-23 13:23:42

Silverlight

2010-10-08 13:53:02

Silverlight

2010-08-09 13:05:24

Flex4beta

2010-07-27 10:03:57

Flex4

2010-08-02 11:26:21

Flex4

2010-08-13 10:30:30

Flex4

2009-12-30 15:32:03

Silverlight

2009-12-29 15:38:17

silverlight

2010-07-29 09:18:25

JavaFXFlexSilverlight

2009-06-03 10:24:11

LoadMaskSilverlight

2009-02-20 08:54:20

DownloaderSilverlight对象

2009-12-29 17:47:36

Silverlight

2009-12-29 16:36:47

Silverlight

2010-08-09 12:59:15

Flex4beta

2009-12-31 16:50:02

Silverlight

2009-12-30 17:19:09

Silverlight

2009-12-31 14:25:19

Silverlight

2010-01-04 18:11:44

Silverlight
点赞
收藏

51CTO技术栈公众号