0

カスタム スプラッシュ スクリーンを備えた Silverlight アプリケーションがあります。スプラッシュのコードは HTML ページにインライン化されています。ローカル マシンでテストしているときは、すべて問題ありません。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >

<head>
    <title>COST_web</title>
    <style type="text/css">
    html, body {
        height: 100%;
        overflow: auto;
    }
    body {
        padding: 0;
        margin: 0;
    }
    #silverlightControlHost {
        height: 100%;
        text-align:center;
    }
    </style>




    <!-- Define XAML content. -->
<script type="text/xaml" id="xamlContent"><?xml version="1.0"?>
<Grid x:Name="LayoutRoot"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
      mc:Ignorable="d"
      d:DesignHeight="514"
      d:DesignWidth="560">
    <Grid.RowDefinitions>
    <RowDefinition Height="*" />
    <RowDefinition Height="Auto" />
  </Grid.RowDefinitions>
    <Grid Grid.Row="1"
        Margin="0,0,0,50">

    <Rectangle Height="5"
               Margin="0,10"
               HorizontalAlignment="Stretch">
      <Rectangle.Fill>
        <LinearGradientBrush EndPoint="0.5,1"
                             StartPoint="0.5,0">
          <GradientStop Color="#FFBBD2E8"
                        Offset="0" />
        </LinearGradientBrush>
      </Rectangle.Fill>
    </Rectangle>

    <Rectangle Height="8"
               HorizontalAlignment="Stretch">
      <Rectangle.Fill>
        <LinearGradientBrush EndPoint="0.5,1"
                             StartPoint="0.5,0">
          <GradientStop Color="#FF6BAAE8"
                        Offset="0" />
          <GradientStop Color="#FF216AB1"
                        Offset="1" />
        </LinearGradientBrush>
      </Rectangle.Fill>
      <Rectangle.RenderTransform>
        <TransformGroup>
          <ScaleTransform ScaleX="1"
                          ScaleY="1"
                          x:Name="scaleTransform" />
          <SkewTransform AngleX="0"
                         AngleY="0" />
          <RotateTransform Angle="0" />
          <TranslateTransform X="0"
                              Y="0"
                              x:Name="translateTransform" />
        </TransformGroup>
      </Rectangle.RenderTransform>
    </Rectangle>

  </Grid>
    <TextBlock x:Name="textBlock1" TextWrapping="Wrap" FontSize="60" FontFamily="Comic Sans MS" Foreground="#FFFF8200" Text="Web od COST project is Loading..." Opacity="1" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="69,126,69,62" Width="422"></TextBlock>
    <Grid.Background>
        <LinearGradientBrush EndPoint="1,0.5" StartPoint="0,0.5">
            <GradientStop Color="#CC32D833" Offset="0.093" />
            <GradientStop Color="#FFF8F83D" Offset="0.703" />
        </LinearGradientBrush>
    </Grid.Background>
</Grid>
</script>



<!-- Define JS content. -->
<script type="text/javascript">
 function onSourceDownloadProgressChanged(sender, eventArgs)
 {
     sender.findName("textBlock1").Opacity = eventArgs.progress.toString();
    sender.findName("scaleTransform").ScaleX = eventArgs.progress;
 }
  </script>







 <!--   <script type="text/javascript" src="splashscreen.js"></script>-->
    <script type="text/javascript" src="Silverlight.js"></script>
    <script type="text/javascript">
        function onSilverlightError(sender, args) {
            var appSource = "";
            if (sender != null && sender != 0) {
              appSource = sender.getHost().Source;
            }

            var errorType = args.ErrorType;
            var iErrorCode = args.ErrorCode;

            if (errorType == "ImageError" || errorType == "MediaError") {
              return;
            }

            var errMsg = "Unhandled Error in Silverlight Application " +  appSource + "\n" ;

            errMsg += "Code: "+ iErrorCode + "    \n";
            errMsg += "Category: " + errorType + "       \n";
            errMsg += "Message: " + args.ErrorMessage + "     \n";

            if (errorType == "ParserError") {
                errMsg += "File: " + args.xamlFile + "     \n";
                errMsg += "Line: " + args.lineNumber + "     \n";
                errMsg += "Position: " + args.charPosition + "     \n";
            }
            else if (errorType == "RuntimeError") {           
                if (args.lineNumber != 0) {
                    errMsg += "Line: " + args.lineNumber + "     \n";
                    errMsg += "Position: " +  args.charPosition + "     \n";
                }
                errMsg += "MethodName: " + args.methodName + "     \n";
            }

            throw new Error(errMsg);
        }
    </script>
</head>
<body>
    <form id="form1" runat="server" style="height:100%">
    <div id="silverlightControlHost">
        <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
          <param name="source" value="ClientBin/COST_web.xap"/>
          <param name="onError" value="onSilverlightError" />
          <param name="background" value="white" />
          <param name="minRuntimeVersion" value="4.0.50826.0" />
          <param name="autoUpgrade" value="true" />
          <!--<param name="splashscreensource" value="SplashScreen.xaml">-->
          <param name="splashscreensource" value="#xamlContent">
          <param name="onSourceDownloadProgressChanged" value="onSourceDownloadProgressChanged">

          <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50826.0" style="text-decoration:none">
              <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/>
          </a>
        </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div>
    </form>
</body>
</html>

パブリッシュしてWebサーバーにロードするときの問題i。サーバー (IIS 7) 上のページにアクセスしたい場合、スプラッシュ スクリーンは表示されず、アプリケーションがロードされる前に白いページのみが表示されます。

ローカルではすべて問題ありませんが、サーバーにデプロイした後、カスタム スプラッシュ スクリーンが表示されません。

4

1 に答える 1

0

SplashScreen.xaml のマニュアルをサーバーにコピーし、「splashscreensource」パラメータを次のように設定するとうまくいくと思います

<param name="splashscreensource" value="SplashScreen.xaml"> 
于 2012-09-23T07:00:07.697 に答える