代码之家  ›  专栏  ›  技术社区  ›  dlanod

如何更改Silverlight加载屏幕的背景?

  •  2
  • dlanod  · 技术社区  · 14 年前

    我试图避免默认的Silverlight加载屏幕在我的小程序之前显示,并试图显示一个空白的彩色背景,与我的小程序的颜色相同。目的是避免不和谐的白色,使它看起来像一个应用程序绘图的一部分。

    我发现 SplashScreenSource

    1 回复  |  直到 14 年前
        1
  •  5
  •   Samvel Siradeghyan    14 年前

    将新XAML文件添加到ASP.NET网站,其中Silverlight将显示。

    <Grid xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <StackPanel VerticalAlignment="Center">
    <Grid>
    <Rectangle x:Name="progressBarBackground" Fill="White" Stroke="Black"
    StrokeThickness="1" Height="30" Width="200"></Rectangle>
    <Rectangle x:Name="progressBar" Fill="Yellow" Height="28" Width="0">
    </Rectangle>
    </Grid>
    <TextBlock x:Name="progressText" HorizontalAlignment="Center"
    Text="0% downloaded ..."></TextBlock>
    </StackPanel>
    </Grid>   
    

    接下来,您需要将JavaScript函数添加到HTML入口页或ASP.NET.

    <script type="text/javascript">
    function onSourceDownloadProgressChanged(sender, eventArgs)
    {
    sender.findName("progressText").Text =
    Math.round((eventArgs.progress * 100)) + "% downloaded ...";
    sender.findName("progressBar").Width =
    eventArgs.progress * sender.findName("progressBarBackground").Width;
    }
    </script>   
    

    要使用此初始屏幕,需要将splashscreensource参数添加到 连接JavaScript事件处理程序。如果你想在下载完成后做出反应,你可以 可以使用onsourcedownloadcomplete连接不同的JavaScript事件处理程序

    <object data="data:application/x-silverlight," type="application/x-silverlight-2"
    width="100%" height="100%">
    <param name="source" value="ClientBin/SplashScreen.xap"/>
    <param name="onerror" value="onSilverlightError" />
    <param name="background" value="white" />
    <param name="splashscreensource" value="SplashScreen.xaml" />
    <param name="onsourcedownloadprogresschanged"
    value="onSourceDownloadProgressChanged" />
    ...
    </object>   
    

    我希望这对你有帮助。