Silverlight:CreateFromXAMLDownloader

本文详细介绍如何使用CreateFromXamlDownloader方法动态创建XAML内容,该方法比CreateFromXAML更高效,因为它直接从Downloader请求的内容进行XAML编译,无需中间缓冲。文章提供了JavaScript示例,展示如何为Canvas对象添加XAML内容,并从下载内容包中检索特定部分。
按照使用downloader内容动态的创建XAML.

retval = silverlightObject.content.CreateFromXamlDownloader(downloader, part);



参数:

 参数名 类型 描述
 downloader 类型是Downloader Downloader对象初始化请求下载内容.
 part 类型是string  明确指定下载包中的part名.当下载包是一个.Zip文件时,part将引用在Downloader中相应的文件名.如果下载内容没有在包中,设置part为一个空字符串.part不是一个可选参数,你至少必须指定为空字符串;

返回值的类型为Object,返回是一个对象引用那就是XAML被创建成功,否则其他的返回为null.

这个方法是a Silverlight plug-in实例的子对象Content下的一个方法.

CreateFromXamlDownloader方法按照在Downloader对象中使用的下载内容使用XAML动态的创建对象,只要能添加当前Silverlight对象,CreateFromXamlDownloader方法就会返回一个对象引用,你能创建一个单独的Silverlight对象,如TextBlock或Silverlight objects实体树.

注意:
CreateFromXamlDownloader方法比CreateFromXAML方法下载内容更有效,这是因为它的内部实现拷贝下载内容来于Downloader请求并且通过它立即进入XAML编译器材,不需要中间缓冲.


使用CreateFromXamlDownloader方法创建XAML内容不能呈现,直到它添加一个对象使用Add方法.下面图显示Silverlight object的层次结构和下载XAML内容在添加一个新的对象前后的关系.


事例:


下面是JavaScript事例显示的是怎样通过使用CreateFromXamlDownloader方法为Canvas对象添加XAML内容.因为下载内容是使用的是包的方式,所以part参数设置为空字符串.
// Event handler for the Completed event.
function onCompleted(sender, eventArgs)
{
    
// Retrieve a reference to the plug-in.
    var slPlugin = sender.getHost();

    
// Retrieve the XAML fragment and create an object reference.
    // In this case, since the downloaded content represents a single file, OK_button.xaml,
    // the part parameter is set to an empty string.
    var xamlFragment = slPlugin.content.createFromXamlDownloader(sender, "");

    
// Add the XAML object as a child of the root Canvas object.
    var root = sender.findName("rootCanvas");
    root.children.add(xamlFragment);
}

你还能使用CreateFromXamlDownloader方法找回一个指定下载内容包中的part.当下载包为一个Zip文件时候,CreateFromXamlDownloader方法能找回ZIP文件中相应的文件名的文件.

下面JavaScript事例Show怎样使用CreateFromXamlDownloader方法,使用part参数引用指定的下载内容中的part.
JScript
Copy Code

// Event handler for the Completed event.
function onCompleted(sender, eventArgs)
{
    
// Retrieve a reference to the plug-in.
    var slPlugin = sender.getHost();

    
// Retrieve the specified XAML file from the packaged downloader content,
    // and create an object reference.
    var xamlFragment = slPlugin.content.createFromXamlDownloader(sender, "OK_button.xaml");

    
// Add the XAML object as a child of the root Canvas object.
    var root = sender.findName("rootCanvas");
    root.children.add(xamlFragment);
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值