怎么样使用Splash Screen来过渡基于Silverlight的应用程序的下载过程
2008-10-04 11:37:40 来源:WEB开发网编写转换过程的Handler
在你下载完成后, 你应该更换当前的XAML文件了, 因为你现在已经完整的拥有了托管 assembly,当然它在XAML文件中有x:Class 属性 .
进行转换过程Handler的编写
回来 TestPage.html 进行编辑.
编写一个 JavaScript event handler 并命名为 downloadCompleted. 在这个handler中, 同样,也通过documentbyID的方法来获得Silverlight control的引用.
创建一个string 变量, 并使这个 XAML string 成为一个Canvas 根 element,然后它将被加入到ProgresssAnim.xaml 页中来. 请确保 x:Class 值正确的指向了你project中build的出来的 assembly. 在Canvas 开始和结尾标记之间, 添加一行代表子element的string: TextBlock 并将其 x:Name 赋值为 myTextBlock.
调用 Control.content.createFromXAML, 保存好这个返回值,并作为一个输入参数传递到你要重新创建的过程中.
得到ProgressAnim.xaml 根 Canvas的引用. 移除根结点及以下所有的animation内容. 要实现这个过程, 请调用 rootCanvas.Children.RemoveAt(0);.
添加一个从createFromXAML中返回的object类型的参数作为Children对象添加到到ProgressAnim.xaml根 Canvas中来.
CS
function downloadCompleted(sender, eventArgs) {
var xaml = "";
xaml += "<Canvas xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml' x:Class='SplashScreenDownload.Page;assembly=SplashScreenDownload.dll' Loaded='Page_Loaded'>";
xaml += " <TextBlock Text='hello, world!' FontSize='20' x:Name='myTextBlock' />";
xaml += "</Canvas>";
var silverlightPlugin = document.getElementById("SilverlightControl");
fragment = silverlightPlugin.content.createFromXaml(xaml);
rootCanvas = sender.findName("rootCanvas");
rootCanvas.children.removeAt(0);
rootCanvas.children.add(fragment);
}
更多精彩
赞助商链接