Создавая приложение, хочется всегда сделать что-нибудь такое эдакое, чтоб красиво и оригинально :) Стильный дизайн формочек, кнопочек и прочих элементов gui, делающих их такими привлекательными для пользователя, что он аж не может удержаться, чтоб не потыкать их мышкой, это хорошо. Это просто отлично. Но это все подается пользователю после загрузки программы, а до этого .... До этого мы видим Splash Screen. Вспомним PhotoShop, CorelDraw - пока загружаются необходимые библиотеки, мы видим Splash Screen с логотипом программы. Очень умный и хороший шаг. Но это для десктоп приложений. В сфере web-приложений (сейчас я говорю о приложениях, созданных с помощью Java, Flex, Silverlight) начальная загрузка приложения гораздо более длительна по времени в силу ограничений пропускной способности интернет-канала. И , ожидая загрузки приложения, мы зачастую видим однотипные Splash Screens, которые встроены и идут по умолчанию для конкретных инстументальных средств. Например, для Silverlight картинка загрузки приложения такова:Красиво, но для коммерческого законченого продукта непременимо. Даже для себя хочется чего-нибудь другого....
Чтобы изменить Spash Screen в Silverlight , потребуются руки, немного фантазии , любимые инструменты (топор и секира :) ) и вобщем-то всё :)
Изменения Splash Screen условно можно разделить на два этапа - подговка нового Splash Screen и его внедрение. Вот так это пафосно звучит :)
И так, создаем новое Silverlight-приложение со следующими опциями:
Далее, в настройках проекта изменяем стартовую страницу с *.asp на *.html:
Теперь в папку ClientBin добави файл SplashScreen.xaml. Уточню, что нам нужен только обычный xaml, не UserControl! В этом файле будет наш Splash Screen. Открываем файл в Expression Blend и редактируем. Вот что получилось у меня:
<Canvas xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="201" Height="89"
Background="#FFFFFFFF">
<canvas name="LayoutRoot">
<Rectangle x:Name="rectBorder" StrokeThickness="1" Stroke="#FFC8C8C8" Height="7" Width="200" HorizontalAlignment="Left"/>
<Rectangle name="rectBar" fill="#FF336EA9" height="7" width="0" horizontalalignment="Left" />
<textblock top="29" width="157" height="29" text="My Splash Screen" textwrapping="Wrap" fontsize="18" left="24" foreground="#FF1C516D"></textblock>
</canvas>
</canvas>
На этом, в принципе, первая часть заканчивается. Могу посоветовать добавить в клиентскую часть ресурсный файл и в него запихнуть чего-нибудь тяжелого, например, видео-ролик где-то размером с 20 мб. Это для того, чтобы успеть увидеть SplashScreen.
Теперь вторая часть - внедрение!
Создаем файл SpashSreen.js со следующим содержанием и добавляем его в серверную часть проекта (splash.web):
function onSourceDownloadProgressChanged(sender, eventArgs)
{
var rectBar = sender.findName("rectBar");
var rectBorder = sender.findName("rectBorder");
if (eventArgs.progress)
rectBar.Width = eventArgs.progress * rectBorder.Width;
else rectBar.Width = eventArgs.get_progress() * rectBorder.Width;
}
Это фунция будет вызываться каждый раз, как увеличится процент загрузки xap-файла приложения. Что и как делает функция, по-моему, понятно интуитивно.
Далее.
Открываем файл, который указали как стартовый при билде. У меня это splashTestPage.html. В раздел <head> страницы добавляем строку <script type="text/javascript" src="SplashScreen.js"></script>
.
Далее в теле документа Silverlight-объекту добавим такие параметры:
<param name="splashscreensource" value="ClientBin/SplashScreen.xaml">
<param name="onSourceDownloadProgressChanged" value="onSourceDownloadProgressChanged">
Все. Запускаем и наслаждаемся :)
Почитать еще об этой процедуре можно тут http://msdn.microsoft.com/en-us/library/cc903962(VS.95).aspx
Исходный код примера можно скачать тут http://wsite.in.ua/files/splash_screen.rar
Создание собственного Splash Screen в Silverlight
Подписаться на:
Комментарии к сообщению (Atom)
Ярлыки
.net
(17)
.net framework
(4)
256
(1)
армагедон
(1)
Библиотека
(12)
видео
(1)
вконтакте
(1)
декомпилятор
(1)
задачки
(5)
итоги
(1)
кодировка
(1)
космос
(1)
маркет
(1)
монетизация
(2)
мысли в слух
(10)
обфускация
(1)
Оптимизация сайта
(1)
отдых
(3)
Ошибка 720
(1)
переводы
(5)
подкасты для разработчика
(3)
прибыль
(1)
приложение
(2)
Разное
(28)
разработка ПО
(31)
рефакторинг
(5)
скачивания
(1)
ссылки
(2)
статистика
(1)
юмор
(31)
Access
(1)
admin2012.ru
(1)
admob
(1)
AMD
(1)
android
(6)
android conventions
(1)
android studio
(1)
angular.js
(1)
ant
(1)
antipattern
(1)
atdd
(2)
autocomplete
(1)
backbone.js
(1)
background repeat
(1)
batch file
(1)
batman.js
(1)
bdd
(3)
bootstrap
(1)
bug
(1)
build
(1)
C#
(31)
clojurescript
(1)
codeigniter
(1)
coding style
(1)
coffeescript
(3)
components
(1)
css
(1)
Custom splash screen
(1)
DDD
(1)
DI
(1)
eclipse
(1)
facebook
(1)
gradle
(1)
hot keys
(1)
html
(4)
ide
(1)
IE
(4)
IE8
(2)
IoC
(6)
ion auth
(1)
jasmine
(1)
java
(3)
javas
(1)
javascript
(9)
jquery
(4)
jquery ui
(1)
justify
(1)
knockout.js
(2)
linq
(3)
localDB
(1)
massive
(1)
micro orm
(1)
mocha
(1)
mock
(1)
mono
(1)
monodroid
(1)
moq
(2)
mpress
(1)
ms sql ce
(8)
msswit2013
(2)
mvc framework
(1)
mysql
(2)
NetBeans
(1)
nodejs
(1)
nosql
(1)
npm
(1)
object db
(1)
opera apps
(1)
ORM
(2)
phonegap
(1)
php
(12)
phpunit
(3)
play market
(2)
qunit
(1)
RegExpr
(2)
require.js
(1)
samsung apps
(2)
screenshoot
(1)
sdk
(1)
Shortcut
(1)
Silverlight
(4)
singleton
(1)
slide me
(1)
soap
(2)
social network
(1)
spellcheck
(1)
SpicIE
(1)
sql
(3)
sqlite
(4)
style
(1)
SublimeText 2
(5)
Super Mario
(1)
svn
(1)
tdd
(14)
tddigest
(5)
testing
(7)
text align
(1)
Tools
(18)
torrents.ru
(1)
tortoisesvn
(1)
twitter
(1)
uml
(1)
unit testing
(5)
unity
(3)
usability
(2)
virus
(1)
visual studio
(7)
web services
(2)
Windows 7
(1)
xunit
(3)
ZenCoding
(2)
Копирайты
Авторские права на публикуемые материалы (кроме тех материалов, где явно указан источник) принадлежат автору блога (мне) и могут быть использованы где-либо еще только с моего согласия.
Блог о жизни вне кода
Постоянные читатели
Популярно
-
Понравился анекдот о колбасе и яйцах :) Жена посылает мужа-программиста в магазин: - Дорогой, купи, пожалуйста, палку колбасы, и если б...
-
Продолжаю серию постов о своём первом андроид-приложении. Сегодня мысли о публикации приложения в разных маркетах.
-
Бета-версия одиннадцатой cтудии вызвала много охов и ахов. Чтобы там ни говорили, работать в ней приятно, хоть по началу немного необычно. ...
-
Перевод поста "Top 10 Things That Annoy Programmers" Кевина Панга. Оригинал тут
-
Jquery.Inputmask - крутой (да-да, именно) плагин, добавляющий гибкости в работу с обычным текстовым полем для ввода. Плагин является ус...
-
Разделяй и влавствуй - подход на все времена. Концепция модульного программирования не нова, и хорошо себя зарекомендовала. В мире разрабо...
-
Фридман А.Л. - Основы объектно-ориентированной разработки программных систем. ( скачать ) Книга написана как учебное пособие для студентов ...
-
Steve Freeman, Nat Pryce. Growing Object-Oriented Software, Guided by Tests ( скачать ) Test-Driven Development (TDD) is now an established...
-
Для некоторых методов класса Microsoft Code Analysis даёт такой совет: CA1822 : Microsoft.Performance : The 'this' parameter (or ...
0 коммент.:
Отправить комментарий