2010-10-01 2 views
2

Я стараюсь, чтобы экран загрузки Silverlight по умолчанию отображался перед моим апплетом и пытался показать пустой цветной фон того же цвета, что и мой апплет. Цель состоит в том, чтобы избежать резкого белого цвета и заставить его выглядеть так, как будто это часть одного приложения.Как изменить фон экрана загрузки Silverlight?

Я обнаружил SplashScreenSource, но я не уверен, как это сделать, чтобы просто показать только один цвет фона вместо экрана загрузки. Какие-либо предложения?

+0

Мне действительно удалось использовать http://msdn.microsoft.com/en-us/library/cc838130(v=vs.95).aspx для отображения изображения иногда, но кажется, что к тому моменту, когда поддельный загрузочный экран загружен, так что у меня есть апплет. Так можно ли вообще избежать белого экрана? – dlanod

ответ

5

Добавить новый файл XAML на сайт ASP.NET, на котором будет показан Silverlight.
Заменить содержимое XAML с этим:

<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 в идентифицировать экран XAML брызговик и onsourcedownloadprogresschanged параметр подключить обработчик событий JavaScript. Если вы хотите, чтобы реагировать, когда загрузка будет завершена, вы можете подключить другой обработчик событий JavaScript с использованием onsourcedownloadcomplete параметра:

<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> 

Я надеюсь, что это поможет.

+0

Я не пользуюсь сайтом ASP.NET, но может ли XAML жить в отдельном файле и иметь тот же эффект? – dlanod

+0

Я думаю, что да, это должно быть в отдельном файле, а другие части должны быть местами на странице, где находится приложение Silverlight (может быть html-файл или другой) –

Смежные вопросы