3

Silverlight 3 응용 프로그램을 브라우저 외부에서 실행할 때 시작에는 약간의 시간이 걸리지 만 눈에 띄기에는 충분합니다. 이 시작 중에 응용 프로그램을 호스팅하는 창의 배경이 추악한 흰색 배경색으로 표시됩니다. 인 브라우저에서 실행할 때 스플래시 화면이 있지만 JavaScript를 통해로드됩니다. 브라우저 외부의 Silverlight 3에서 스플래시 화면을 작동 시키려면 어떻게합니까? 아니면 가능하지 않다면 최소한 창 배경색을 바꿀 수있는 방법이 있습니까?브라우저를 벗어나는 Silverlight 3 응용 프로그램을로드 할 때 배경색을 변경하는 방법은 무엇입니까?

답변

2

실제로 이것을 수행하는 방법을 발견했습니다. 만세! 많은 크레딧은 this page에있는 문서로 이동합니다. 우리는 디스크에 응용 프로그램을 배포하고 있습니다. 이 지침은 사용자가 웹에서 설치 한 Silverlight 응용 프로그램에서는 작동하지 않습니다.

Silverlight 실행기가 처음에 HTML 페이지를로드하는 것으로 나타났습니다. 응용 프로그램이 설치되면 index.html 파일이 있습니다. 이 페이지에는 웹에서 Silverlight를 호스팅하는 데 사용 된 태그와 비슷한 <object> 태그가 포함되어 있습니다.

불행히도이 <object>은 Silverlight 스플래시 화면 XAML 또는 진행률 표시기를 지원하지 않습니다. XAML 또는 진행 표시기는 XAP을 다운로드하지 않기 때문에 예상됩니다. 또한 페이지 또는 <object>의 배경색을 설정해도 효과가없는 것으로 보입니다. 그러나 Windows에서 즉시 플러그인 그리기를 시작하므로 기본 창 색상이 표시됩니다.

이 문제를 해결하기 위해 Silverlight를 호스팅하는 <div>visibilityhidden으로 설정했습니다. 그런 다음 HTML의 맨 아래에 타이머를 설정하는 <script>을 추가했습니다. 타이머가 실행되면 <div>visibilityvisible으로 변경되고 Silverlight 개체에 포커스가 제공됩니다. 타이머를 1 밀리 초로 설정해도 HTML 호스트가 웹 페이지의 초기 그리기를 수행 할 수 있습니다. Silverlight 아래의 모든 콘텐츠를 표시 할 수 있습니다.

<!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> 
    <style type="text/css"> 
     html, body { height: 100%; overflow: hidden; background-color: black; } 
     body { padding: 0; margin: 0; } 

     #silverlightControlHost 
     { 
      height: 100%; visibility: hidden; position: absolute; 
     } 

     #splashScreen 
     { 
      background-image: url('blah.png'); 
      background-repeat: no-repeat; 
      width: 575px; 
      height: 330px; 
      top: 185px; 
      left: 212px; 
      color: white; 
      position: absolute; 
      font-family: Arial, Sans-Serif; 
     } 

     #loadingText 
     { 
      position: relative; 
      top: 165px; 
      text-align: center; 
      font-size: 18px; 
     } 
    </style> 
    </head> 
    <body scroll="no"> 
    <div id="silverlightControlHost"> 
     <object id='_sl' data="data:application/x-silverlight," type="application/x-silverlight" width="100%" height="100%"> 
      <param name="source" value="offline://1931574666.localhost"/> 
      <param name="background" value="Black"/> 
      <param name="enableGPUAcceleration" value="True"/> 
      <a href="http://go.microsoft.com/fwlink/?LinkID=124807" 
      style="text-decoration: none;"> 
       <img src="http://go.microsoft.com/fwlink/?LinkId=108181" 
       alt="Get Microsoft Silverlight" style="border-style: none"/> 
      </a> 
     </object> 
     <iframe style='visibility:hidden;height:0;width:0;border:0px'></iframe> 
    </div> 
    <div id="splashScreen"> 
     <div id="loadingText">Loading. Please wait...</div> 
    </div> 
    <script> 
     setTimeout(
      function() { 
       var ctrl = document.getElementById("silverlightControlHost"); 
       ctrl.style.visibility = "visible"; 
       document.getElementById('_sl').focus(); 
      }, 
      3000 
     ); 
    </script> 
    </body> 
</html> 
:

은 여기 내 전체 HTML 페이지입니다

0

불행히도 Silerlight 3는이를 사용자 정의 할 수있는 방법을 제공하지 않습니다.