Silverlight XAML互相引用

Silverlight XAML互相引用,第1张

概述本文是互联力量的Silverlight系列内容之二,面向Silverlight初学者,重点描述Silverlight XAML的基本特点。如果你对Silverlight是什么还不清楚,请参考什么是Silverlight XAML称为可扩展应用程序标记语言(Extensible Application Markup Language),读作“zammel”,它的作用通俗的说,就是表现Silverli

本文是互联力量的Silverlight系列内容之二,面向Silverlight初学者,重点描述Silverlight XAML的基本特点。如果你对Silverlight是什么还不清楚,请参考什么是Silverlight

XAML称为可扩展应用程序标记语言(Extensible Application MarkuP Language),读作“zammel”,它的作用通俗的说,就是表现Silverlight的界面,如同HTML用来表现网页界面。毫无疑问,你要用Silverlight,就必须了解XAML。很显然,XAML比HTML要复杂,总体上并不难以学习。XAML也是脚本类型的语言,需要专门的解析器来解释执行,每个版本都有对应的解析器,Silverlight 4的解析器并不能解析Silverlight 3,但是Microsoft为了兼容,在Silverlight 4核心库提供了Silverlight 3的XAML解析器。可以使用VS2010,Blend,XAMLPad或文本编辑器,编写XAML,它毕竟只是个“外观语言”。

VS2010每次都会自动生成一小段XAML代码,如下:

            @H_419_15@     ?        
1 2 3 4 5 6 7  
 <UserControlx:Class="MySilverlight.Page"  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">  <GrIDBackground="oldLace">  </GrID></UserControl>

这段文本,保存在后缀为.xaml的文件,实际是xaml的源码文件。通过VS2010或Blend可以看到界面效果,显示了背景为“oldLace”色彩的区域。其它的是什么意思呢,先看UserControl,这是.net 用户控件的基类,在Asp.net中常见。用在Silverlight中也有类似Asp.net的意思,UserControl类封装了Silverlight程序最必需的要求,包含了初始化UI的基本部分。Microsoft认为,功能应该划分为小模块,同时界面效果应该重用,封装控件是最适合的方式。这样Silverlight的每个页面,实际派生的是UserControl类。这点来看很类似MasterPage的效果。

x:Class="MySilverlight.Page"这句话是说,当前的XAML有后置代码,放在.xaml.cs文件中,里面包含的是XAML对应的类的定义。x:Class指定了当前XAML页面的类,如:

          @H_419_15@     ?        
1 2 3 4 5 6 7 8 9 10
namespaceMySilverlight{    publicpartialclasspage : UserControl    {        publicPage()        {            InitializeComponent();        }    }}

再来看xmlns,它表示为名称空间,xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 这是XAML的命名空间,引用到Silverlight核心程序集,如System.windows,xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 是XAML 语言元素要用到的 命名空间,通常将它映射为 x: 前缀。这里顺便说下,为什么要使用这么多名称空间,你在界面引用不同的类型,控件,标记,这些都需要有一个无二义性的唯一名称,这些元素的来源不同,所以需要用不同的方式来引用。xmlns这个关键字,是为了符合xml 1.0规范,在每个页面的根元素中使用。

思考,如果现在有个自定义的按钮,需要在XAML中使用,该如何引用呢。首先要单独引用名称空间,使用xmlns,然后声明引用的clr名称空间clr-namespace,程序集的名字是www.Foxitjob.com,完整的写法是

 

@H_419_15@ ?
1 2 3 4 < UserControl x:Class = "MySilverlight.Page"    xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation"    xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml"    xmlns:h = "clr-namespace:www.foxitjob.com" >

 

 

 

引用之后,才能使用这个控件:

           @H_419_15@     ?        
1 2 3
<GrIDBackground="oldLace">   <h:HotbuttonText="按钮"Click="Clicked"></h:Hotbutton></GrID>
总结

以上是内存溢出为你收集整理的Silverlight XAML互相引用全部内容,希望文章能够帮你解决Silverlight XAML互相引用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1067033.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存