Silverlight 初始屏幕(来自MSDN)

1、初始屏幕使用情况

可用于构造 Silverlight 初始屏幕的功能集旨在处理以下情况,但并不仅限于这些方面:

  • 显示下载进度

  • 显示动画,即使不必使用它们来显示下载进度

  • 提供品牌,这可以包括文本、向量图形甚至视频

  • 显示产品信息,例如免责声明

2、默认初始屏幕体验

       在托管 API 下为 Silverlight 定义的默认体验是:超出某一时间阈值(约为 0.5 秒)的任何加载都将在内容区域中显示基于 XAML 的动画。显示该默认动画和初始化序列的 XAML 被硬编码到 Silverlight 插件中。为了替换默认初始屏幕,您为在 HTML 中定义 object 元素的 Silverlight 插件的 splashScreenSource 参数提供一个值。

3、应用程序项目中的基本初始屏幕

参数

说明

SplashScreenSource 设置为初始屏幕提供视觉效果的 XAML 页的 URI。此页在 JavaScript API 下作为初始 Silverlight 内容加载。
ourceDownloadProgressChanged 设置正在下载 Source 期间对以增量方式调用的事件处理程序的名称。
OnSourceDownloadComplete 设置在 Source 下载完成后立即调用的事件处理程序的名称。

4、创建一个简单的初始屏幕

1)在承载silverlight的网站中创建一个SplashScreen.xaml文件。(注:创建这个文件时会同时创建SplashScreen.js文件)


<Canvas
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        x:Name="parentCanvas"
        Width="850"
        Height="600"
        Background="OldLace"
        >
  <Canvas Canvas.Top="228.834" Canvas.Left="246.329" Width="357" Height="31.379">
    <Rectangle Width="27.545" Height="1" x:Name="uxProgress" Canvas.Top="29.545" Canvas.Left="1.4">
    <Rectangle.RenderTransform>
      <TransformGroup>
        <ScaleTransform x:Name="uxProgressBar" ScaleX="1" ScaleY="0"/>
        <SkewTransform AngleX="0" AngleY="0"/>
        <RotateTransform Angle="270"/>
        <TranslateTransform X="0" Y="0"/>
      </TransformGroup>
    </Rectangle.RenderTransform>
    <Rectangle.Fill>
      <LinearGradientBrush EndPoint="1,0.5" StartPoint="0,0.5">
        <GradientStop Color="#FFFFFFFF" Offset="1"/>
        <GradientStop Color="#FFFFFFFF" Offset="0"/>
        <GradientStop Color="#FF2975D0" Offset="0.28"/>
        <GradientStop Color="#FF2975D0" Offset="0.72"/>
      </LinearGradientBrush>
    </Rectangle.Fill>
  </Rectangle>

  <TextBlock x:Name="uxStatus" Height="25" Canvas.Left="125" Text="Loading..." TextWrapping="Wrap" Canvas.Top="4.16"/>

  <Path Width="356.85" Height="1" Fill="#FF3A3A3A" Stretch="Fill" Stroke="#FF000000" Canvas.Top="0" Data="M0,170.5 L356.84209,170.5" Opacity="0.35"/>
  <Path Width="1.662" Height="29.03" Fill="#FF3A3A3A" Stretch="Fill" Stroke="#FF000000" Canvas.Top="0.48" Canvas.Left="0.2" Data="M360,168 L360,0" Opacity="0.35" />

  <Path Width="357.84" Height="1" Fill="#FF3A3A3A" Stretch="Fill" Stroke="#FF000000" Canvas.Top="29" Data="M0,170.5 L356.84209,170.5" Opacity="0.35"/>
  <Path Width="358.85" Height="1" Fill="#FFA2A2A2" Stretch="Fill" Stroke="#FF000000" Canvas.Top="30" Data="M0,170.5 L356.84209,170.5" Opacity="0.25"/>
  <Path Width="1.662" Height="30" Fill="#FF3A3A3A" Stretch="Fill" Stroke="#FF000000" Canvas.Left="356.01" Data="M360,168 L360,0" Opacity="0.35" Canvas.Top="-0.498"/>
  <Path Width="1" Height="31" Fill="#FFA2A2A2" Stretch="Fill" Stroke="#FF000000" Canvas.Left="357.333" Data="M360,168 L360,0" Opacity="0.245" Canvas.Top="-0.498" />     
</Canvas>
</Canvas>

2)在页面中的object插件中添加子元素

<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">

<param name="splashscreensource" value="SplashScreen.xaml"/>

<param name="onSourceDownloadProgressChanged" value="onSourceDownloadProgressChanged" />

</object>

3)删除SplashScreen.js文件中的原内容,添加以下内容

function onSourceDownloadProgressChanged(sender, eventArgs)

{

       sender.findName("uxStatus").Text = "Loading: " + Math.round((eventArgs.progress * 1000)) / 10 + "%";

       sender.findName("uxProgressBar").ScaleY = eventArgs.progress * 356;

}

4)在页面中将SplashScreen.js引入

<script type="text/javascript" src="splashscreen.js"></script>

 

5、注意:

1)将SplashScreen.xaml的属性改为 内容 ,将xaml作为内容输出

你可能感兴趣的:(silverlight)