SplashScreenSource的妙用

默认初始屏幕体验

在托管 API 下为 Silverlight 定义的默认体验是:超出某一时间阈值(约为 0.5 秒)的任何加载都将在内容区域中显示基于 XAML 的动画。显示该默认动画和初始化序列的 XAML 被硬编码到 Silverlight 插件中。

为了替换默认初始屏幕,您为在 HTML 中定义 object 元素的 Silverlight 插件的 splashScreenSource 参数提供一个值。或者,用于 Silverlight 的 ASP.NET 控件将定义一些 API,这些 API 将所需的初始屏幕相关参数设置到其在 HTML 中的输出 object 元素中。

以上是其的官方解释,简单的说呢就是可以利用初始屏幕来制作自定义的loading效果。

官方的中文文档写的相当详细了,这里我就不在做重复的熬述。

http://msdn.microsoft.com/zh-cn/library/cc838130%28VS.95%29.aspx

做法

1.先自己做一个想要的初始屏幕的xaml(在blend中创建一个silverlight 1的项目,用blend画一个loading界面)

<Canvas
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        x:Name="parentCanvas"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
        mc:Ignorable="d">
  <Grid x:Name="LayoutRoot">
    <Grid  HorizontalAlignment="Center" VerticalAlignment="Center" Width="280" Height="37.807">
    <Canvas Width="280" Height="37.807">
      <TextBlock FontSize="22" Foreground="#FF949494" TextWrapping="Wrap">
        <Run Text="SilverAlbum"/>
      </TextBlock>
      <TextBlock x:Name="StatusText" 
                 FontSize="10" 
                 Foreground="#FF949494" 
                 TextWrapping="Wrap" 
                 Canvas.Left="150" Text="" 
                 Canvas.Top="13.16"/>
      <Canvas Canvas.Top="25.807" Width="280" Height="12">
        <Rectangle Stroke="#FF949494" StrokeThickness="2" Width="280" Height="12"/>
        <Rectangle x:Name="ProgressBar" 
                   Width="272" 
                   Height="4" 
                   Fill="#FF949494" Canvas.Left="4.26" Canvas.Top="4">
          <Rectangle.RenderTransform>
            <TransformGroup>
              <ScaleTransform x:Name="ProgressBarTransform" ScaleY="1" ScaleX="0"/>
              <SkewTransform/>
              <RotateTransform/>
              <TranslateTransform Y="0" X="0"/>
            </TransformGroup>
          </Rectangle.RenderTransform>
        </Rectangle>
      </Canvas>
    </Canvas>
    </Grid>
  </Grid>
</Canvas>

2.在html页面中silverlightHost的地方修改以下代码

3.编写js文件(做过silverlight1.0开发的朋友应该不会陌生,就是通过js来控制silverlight中的元素)

function onSourceDownloadProgressChanged(sender, eventArgs) {
    sender.findName("LayoutRoot").Width = document.body.clientWidth;
    sender.findName("LayoutRoot").Height =document.body.clientHeight;
    sender.findName("StatusText").Text = Math.round((eventArgs.progress * 1000)) / 10 + " percent loaded";
    sender.findName("ProgressBarTransform").ScaleX = eventArgs.progress;
}

这样就完成了一个自定义的loading效果。  :)    很简单吧

看到这里再请看看不用SplashScreenSource的做法

http://www.cnblogs.com/nasa/archive/2008/07/22/1248973.html

对比下  ;)  哪种更见当方便? 效果预览:http://grmcac.com/silverlight/lab/silveralbum/

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏python3

tkinter -- Font

在 Windows 上测试字体显示,注意字体中包含有空格的字体名称必须指定为 tuple 类型

1062
来自专栏Spring相关

制作Nine-Patch图片

1241
来自专栏葡萄城控件技术团队

Spread for Windows Forms快速入门(10)---绑定到数据库

下面的教程将带你创建一个工程, 并将Spread控件绑定到一个数据库。 在这个教程中,主要的步骤为: 1. 将Spread添加到一个数据绑定工程中 2. 设置数...

1919
来自专栏互联网软件技术

wangEditor-基于javascript和css开发的 Web富文本编辑器, 轻量、简洁、易用、开源免费(1)

wangEditor-基于javascript和css开发的 Web富文本编辑器, 轻量、简洁、易用、开源免费

3286
来自专栏沈唁志

纯代码给 WordPress 文章编辑器上增加 Prism.js 代码高亮的快捷按钮

之前发过文章说过:使用 Prism.js 实现漂亮的代码语法高亮,本博客也使用的是它

1281
来自专栏跟着阿笨一起玩NET

Winfrom 使用TabControl控件模拟程序向导步骤

在给应用程序添加一个向导的做法有很多,但其中比较简便易行的是使用TabControl。如下图所示

1181
来自专栏马洪彪

C#仪器数据文件解析-RTF文件

RTF格式文件大家并不陌生,但RTF文件的编码、解码却很难,因为RTF文件是富文本格式的,即文件中除了包含文本内容,还包含文本的格式信息,而这些信息并没有像后来...

3154
来自专栏進无尽的文章

基础篇-Welcome to Xcode

Command + Shift + K:清除工程: Command + B :构建应用 commond + r 启动模拟器 commond + . 停止模...

971
来自专栏Python爬虫与算法进阶

如何在微信公众号编辑Python代码?

直接引用代码完全没法看,后来在群里听说chrome有一个神器:markdownhere 安装过程就不说了,下面说一说如何使用。 markdown语法说明 粘贴一...

3735
来自专栏我和未来有约会

SplashScreenSource的妙用

默认初始屏幕体验 在托管 API 下为 Silverlight 定义的默认体验是:超出某一时间阈值(约为 0.5 秒)的任何加载都将在内容区域中显示基于 XA...

2019

扫码关注云+社区

领取腾讯云代金券