Silverlight 3 응용 프로그램을 브라우저 외부에서 실행할 때 시작에는 약간의 시간이 걸리지 만 눈에 띄기에는 충분합니다. 이 시작 중에 응용 프로그램을 호스팅하는 창의 배경이 추악한 흰색 배경색으로 표시됩니다. 인 브라우저에서 실행할 때 스플래시 화면이 있지만 JavaScript를 통해로드됩니다. 브라우저 외부의 Silverlight 3에서 스플래시 화면을 작동 시키려면 어떻게합니까? 아니면 가능하지 않다면 최소한 창 배경색을 바꿀 수있는 방법이 있습니까?브라우저를 벗어나는 Silverlight 3 응용 프로그램을로드 할 때 배경색을 변경하는 방법은 무엇입니까?
답변
실제로 이것을 수행하는 방법을 발견했습니다. 만세! 많은 크레딧은 this page에있는 문서로 이동합니다. 우리는 디스크에 응용 프로그램을 배포하고 있습니다. 이 지침은 사용자가 웹에서 설치 한 Silverlight 응용 프로그램에서는 작동하지 않습니다.
Silverlight 실행기가 처음에 HTML 페이지를로드하는 것으로 나타났습니다. 응용 프로그램이 설치되면 index.html 파일이 있습니다. 이 페이지에는 웹에서 Silverlight를 호스팅하는 데 사용 된 태그와 비슷한 <object>
태그가 포함되어 있습니다.
불행히도이 <object>
은 Silverlight 스플래시 화면 XAML 또는 진행률 표시기를 지원하지 않습니다. XAML 또는 진행 표시기는 XAP을 다운로드하지 않기 때문에 예상됩니다. 또한 페이지 또는 <object>
의 배경색을 설정해도 효과가없는 것으로 보입니다. 그러나 Windows에서 즉시 플러그인 그리기를 시작하므로 기본 창 색상이 표시됩니다.
이 문제를 해결하기 위해 Silverlight를 호스팅하는 <div>
의 visibility
을 hidden
으로 설정했습니다. 그런 다음 HTML의 맨 아래에 타이머를 설정하는 <script>
을 추가했습니다. 타이머가 실행되면 <div>
의 visibility
이 visible
으로 변경되고 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 페이지입니다
불행히도 Silerlight 3는이를 사용자 정의 할 수있는 방법을 제공하지 않습니다.