<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://silverlighter.ru/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang=""><title type="html">Бюллетень cильверлайтера</title><subtitle type="html" /><id>http://silverlighter.ru/blogs/digest/atom.aspx</id><link rel="alternate" type="text/html" href="http://silverlighter.ru/blogs/digest/default.aspx" /><link rel="self" type="application/atom+xml" href="http://silverlighter.ru/blogs/digest/atom.aspx" /><generator uri="http://communityserver.org" version="4.0.30619.63">Community Server</generator><updated>2009-04-08T11:19:00Z</updated><entry><title>Бюллетень Сильверлайтера. Выпуск №3</title><link rel="alternate" type="text/html" href="/blogs/digest/archive/2009/07/10/28172.aspx" /><id>/blogs/digest/archive/2009/07/10/28172.aspx</id><published>2009-07-10T07:35:55Z</published><updated>2009-07-10T07:35:55Z</updated><content type="html">&lt;p&gt;Привет, коллеги. К всеобщей радости, сегодня нам стал доступен релиз Silverlight 3 и Expression Blend 3. Этот выпуск мы хотели бы посвятить третьему сильверлайту, поэтому приводим подбор ссылок на русскоязычные ресурсы по нему. &lt;/p&gt;  &lt;h3&gt;Итак, начнем непосредственно с виновников торжества:&lt;/h3&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/silverlight/resources/install.aspx"&gt;Silverlight 3 RTW (3.0.40624.0)&lt;/a&gt;,&amp;#160; &lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=2050e580-f1d5-4040-bb09-e6185591b6b5"&gt;Silverlight™ 3 SDK&lt;/a&gt;,     &lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=9442b0f2-7465-417a-88f3-5e7b5409e9dd"&gt;Silverlight™ 3 Tools for Visual Studio 2008 SP1&lt;/a&gt;,     &lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=92e1db7a-5d36-449b-8c6b-d25f078f3609"&gt;Expression Blend 3 + SketchFlow RC&lt;/a&gt;,     &lt;br /&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=457b17b7-52bf-4bda-87a3-fa8a4673f8bf"&gt;Deep Zoom Composer&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://www.codeplex.com/Silverlight"&gt;Silverlight Toolkit&lt;/a&gt; &lt;/p&gt;  &lt;h2&gt;Обзоры основных возможностей Silverlight 3:&lt;/h2&gt;  &lt;p&gt;&lt;strong&gt;Работа вне браузера&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://silverlighter.ru/blogs/digest/archive/2009/04/08/852.aspx#sl13"&gt;Поддержка работы Silverlight приложений вне браузера (внебраузерные, Offline Silverlight приложения)&lt;/a&gt; (Статья) &lt;/li&gt;    &lt;li&gt;&lt;a href="http://silverlighter.ru/media/p/35829.aspx"&gt;Создание внебраузерных Silverlight приложений&lt;/a&gt; от Сергея Пугачева – запуск Silverlight-приложений вне браузера как локальное приложение соответствующей ОС (Скринкаст) &lt;/li&gt;    &lt;li&gt;&lt;a href="http://silverlighter.ru/blogs/digest/archive/2009/04/08/852.aspx#sl14"&gt;Детектирование наличия/отсутствия сетевого соединения&lt;/a&gt; (Статья) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Навигация по приложению. Navigation Framework&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://silverlighter.ru/blogs/digest/archive/2009/04/08/852.aspx#sl15"&gt;Navigation Framework&lt;/a&gt; (Статья) &lt;/li&gt;    &lt;li&gt;&lt;a href="http://silverlighter.ru/media/p/35831.aspx"&gt;Навигация в Silverlight-приложениях. Поисковая оптимизация&lt;/a&gt; от Александра Порубова – SEO, работа с многостраничными Silverlight-приложениями, переход по меткам внутри приложения (Скринкаст) &lt;/li&gt;    &lt;li&gt;&lt;a href="http://silverlighter.ru/blogs/silverlighter_blog/archive/2009/07/14/silverlight-google-analytics.aspx"&gt;Узнай о пользователе все: сбор статистики в Silverlight с помощью Google Analytics&lt;/a&gt; - статья об использовании Google Analytics в ваших RIA приложениях. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Новые элементы управления&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://silverlighter.ru/blogs/digest/archive/2009/04/08/852.aspx#sl11"&gt;Элементы управления&lt;/a&gt; – небольшой обзор новых элементов UI. (Статья) &lt;/li&gt;    &lt;li&gt;&lt;a href="http://silverlighter.ru/blogs/digest/archive/2009/05/09/9811.aspx#sl2"&gt;Компонент DataForm в Silverlight 3&lt;/a&gt; (Статья) &lt;/li&gt;    &lt;li&gt;&lt;a href="http://silverlighter.ru/blogs/digest/archive/2009/05/09/9811.aspx#sl3"&gt;Стилизация каретки в Silverlight 3&lt;/a&gt; (Статья) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;3D проекции&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://silverlighter.ru/blogs/digest/archive/2009/04/08/852.aspx#sl12"&gt;Поддержка 3D&lt;/a&gt; (Статья) &lt;/li&gt;    &lt;li&gt;&lt;a href="http://silverlighter.ru/media/p/35836.aspx"&gt;Silverlight 3. Работа с 3D проекциями&lt;/a&gt; от Сергея Пугачева – обзор новых возможностей Silverlight по работе с трехмерной графикой (Скринкаст) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;.NET RIA Services/Web services&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://silverlighter.ru/media/p/35837.aspx"&gt;Введение в .NET RIA Services – создание бизнес-приложений в Silverlight 3&lt;/a&gt; от Сергея Звездина – обзор .NET RIA Services, платформы для создания бизнес-приложений на базе Silverlight 3 (Скринкаст) &lt;/li&gt;    &lt;li&gt;&lt;a href="http://silverlighter.ru/media/p/35838.aspx"&gt;Разработка бизнес-приложений с использованием .NET RIA Services и Silverlight 3&lt;/a&gt; от Сергея Звездина – более глубокий часовой доклад по .NET RIA Services (Скринкаст) &lt;/li&gt;    &lt;li&gt;&lt;a href="http://silverlighter.ru/media/p/35839.aspx"&gt;Возможности Silverlight по работе с веб-сервисами&lt;/a&gt; от Виталия Дильмухаметова – обновление доклада с учетом новых возможностей Silverlight 3 по работе с веб-сервисами + возможности и прежних версий (Скринкаст) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Smooth Streaming&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://silverlighter.ru/media/p/35840.aspx"&gt;Обзор технологии Smooth Streaming&lt;/a&gt; от Михаила Черномордикова – на самом деле это не только Silverlight 3, там поддерживается и вторая версия. Технология динамического изменения качества видеосигнала в реальном времени на базе HTTP (Скринкаст) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Помимо всего перечисленного, доступна книга &lt;font size="5"&gt;“&lt;a href="http://remix.ru/silverlight3book"&gt;Первый взгляд: Silverlight 3&lt;/a&gt;”&lt;/font&gt;, подробнее здесь - &lt;a href="http://silverlighter.ru/blogs/silverlighter_blog/archive/2009/04/27/pervij-vzglyad_3A00_-silverlight-3-_1320_-besplatnaya-kniga.aspx"&gt;Первый взгляд: Silverlight 3 – бесплатная книга&lt;/a&gt; (Статья)&lt;/p&gt;  &lt;h2&gt;Обзоры возможностей Blend 3&lt;/h2&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://silverlighter.ru/blogs/silverlighter_blog/archive/2009/06/23/scenarij-masterdetail-v-blend-3.aspx"&gt;Сценарий Master/Detail в Blend 3&lt;/a&gt; (Статья) &lt;/li&gt;    &lt;li&gt;&lt;a href="http://silverlighter.ru/blogs/silverlighter_blog/archive/2009/05/23/blend-3-kak-generator-dannih.aspx"&gt;Blend 3 как генератор данных&lt;/a&gt; (Статья) &lt;/li&gt;    &lt;li&gt;&lt;a href="http://silverlighter.ru/blogs/silverlighter_blog/archive/2009/04/16/kto-ischet-_1320_-tot-najdet_2620_tfs_2E00_.aspx"&gt;Кто ищет – тот найдет…TFS.&lt;/a&gt; (Статья) &lt;/li&gt;    &lt;li&gt;&lt;a href="http://silverlighter.ru/blogs/silverlighter_blog/archive/2009/04/16/skinning-kontrolov.-slajder_2E00_.aspx"&gt;Скиннинг контролов. Слайдер.&lt;/a&gt; – скиннинг элементов управления с учетом возможностей Blend 3 (Статья) &lt;/li&gt;    &lt;li&gt;&lt;a href="http://silverlighter.ru/media/p/35841.aspx"&gt;Настоящее и будущее Expression Blend 3&lt;/a&gt; от Алены Косинской – подробный доклад про новые возможности Blend 3 (Скринкаст) &lt;/li&gt;    &lt;li&gt;&lt;a href="http://silverlighter.ru/media/p/35842.aspx"&gt;Импорт файлов из Adobe Photoshop в Microsoft Expression Blend 3&lt;/a&gt; от Алены Косинской – работа Blend 3 по импорту файлов из Photoshop (Скринкаст) &lt;/li&gt;    &lt;li&gt;&lt;a href="http://silverlighter.ru/media/p/35843.aspx"&gt;Blend 3 и Sketch Flow : прототипируем приложения&lt;/a&gt; от Алены Косинской – подробный доклад про очень интересную возможность SketchFlow по работе с прототипами для дизайнеров (Скринкаст) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Все приведенные ресурсы, связанные с Blend 3, созданы Аленой Косинской, за что ей огромное спасибо.&lt;/p&gt;  &lt;p&gt;Материалов на русском очень много, что, несомненно, радует. Не стоит забывать, что большинство публикаций по Silverlight 2 применимы и к третьей версии. Используйте &lt;a href="http://silverlighter.ru/blogs/silverlighter_blog/search.aspx"&gt;&lt;strong&gt;поиск по сайту&lt;/strong&gt;&lt;/a&gt; – вы найдете массу информации. Также всегда рады видеть вас на нашем &lt;strong&gt;&lt;a href="http://silverlighter.ru/forums/"&gt;форуме&lt;/a&gt;&lt;/strong&gt;. Обсуждайте, делитесь впечатлениями. На &lt;a href="http://www.techdays.ru/Category.aspx?Tag=Silverlight"&gt;&lt;strong&gt;techdays.ru&lt;/strong&gt;&lt;/a&gt; доступны скринкасты о любимой технологии. &lt;/p&gt;  &lt;p&gt;Хочется обратить внимание на возможность публикации статьи в новостях/блогах. За время существования сайта, ни один участник сообщества не воспользовался данной функцией. Друзья, не стесняйтесь, делитесь опытом. Не нужно быть знатоком сильверлайта, чтобы прислать материал. Есть масса новичков, для которых ваши заметки могут стать&amp;#160; хорошим подспорьем при освоении технологии. Все, что нужно – зайти в &lt;a href="http://silverlighter.ru/addcontent/"&gt;&lt;strong&gt;раздел добавления контента&lt;/strong&gt;&lt;/a&gt; и отправить нам ваш пост. &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://silverlighter.ru/aggbug.aspx?PostID=28172" width="1" height="1"&gt;</content><author><name>Sanchez</name><uri>http://silverlighter.ru/members/Sanchez/default.aspx</uri></author><category term="Бюллетень Сильверлайтера" scheme="http://silverlighter.ru/blogs/digest/archive/tags/_11044E043B043B043504420435043D044C04_+_210438043B044C043204350440043B04300439044204350440043004_/default.aspx" /><category term="Silverlight 3" scheme="http://silverlighter.ru/blogs/digest/archive/tags/Silverlight+3/default.aspx" /><category term="Блог" scheme="http://silverlighter.ru/blogs/digest/archive/tags/_11043B043E043304_/default.aspx" /><category term="Новости" scheme="http://silverlighter.ru/blogs/digest/archive/tags/_1D043E0432043E04410442043804_/default.aspx" /></entry><entry><title>Бюллетень Сильверлайтера. Выпуск №2.</title><link rel="alternate" type="text/html" href="/blogs/digest/archive/2009/05/09/9811.aspx" /><id>/blogs/digest/archive/2009/05/09/9811.aspx</id><published>2009-05-09T14:49:46Z</published><updated>2009-05-09T14:49:46Z</updated><content type="html">&lt;h3&gt;9 Мая 2009 года.&lt;/h3&gt;  &lt;p align="justify"&gt;Здравствуйте, уважаемые сильверлайтеры! Вот и прошёл месяц, и мы, рады представить Вам второй выпуск нашего бюллетеня. Как всегда ждём от Вас откликов, мнений и предложений по улучшению бюллетеня и сайта silverlighter.ru в целом! &lt;/p&gt;  &lt;p align="justify"&gt;И, так как, сегодня 9 мая, не могу не поздравить Вас с днём Великой Победы! &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://silverlighter.ru/blogs/digest/archive/2009/05/09/9811.aspx#sl1"&gt;Новости&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://silverlighter.ru/blogs/digest/archive/2009/05/09/9811.aspx#sl2"&gt;Компонент DataForm в Silverlight 3&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://silverlighter.ru/blogs/digest/archive/2009/05/09/9811.aspx#sl3"&gt;Стилизация каретки в Silverlight 3&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://silverlighter.ru/blogs/digest/archive/2009/05/09/9811.aspx#sl4"&gt;Обходим кеширование изображений&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;h2&gt;&lt;a name="sl1"&gt;Новости.&lt;/a&gt;&lt;/h2&gt; &lt;a href="http://remix.ru/silverlight3book"&gt;Доступна электронная книга &amp;quot;Первый взгляд Silverlight 3&amp;quot; на русском языке.&lt;/a&gt;   &lt;br /&gt;&lt;a href="http://silverlighter.ru/blogs/silverlighter_blog/archive/2009/05/05/vishel-moonlight-2.0-preview-1.aspx"&gt;Вышел Moonlight 2.0 preview 1.&lt;/a&gt;   &lt;br /&gt;Для ознакомления и тестирования стал доступен Moonlight 2.0 preview 1. Напомню, что это open-source реализация технологии Silverlight под множество платформ.   &lt;br /&gt;&lt;a href="http://silverlighter.ru/blogs/digest/archive/2009/04/30/intuit-ru-quot-microsoft-silverlight-2-quot.aspx"&gt;Intuit.ru опубликовал курс &amp;quot;Введение в Microsoft Silverlight 2&amp;quot;.&lt;/a&gt;   &lt;br /&gt;Всем начинающим сильверлайтерам будет полезно - Этот курс может стать вашим первым взгляд на инструменты и технологии создания приложений с использованием Silverlight 2.   &lt;br /&gt;&lt;a href="http://silverlighter.ru/blogs/silverlighter_blog/archive/2009/04/16/deepzoompix_3A00_-hosting-vashih-fotografij-v-deepzoom-vide.aspx"&gt;DeepZoomPix: хостинг ваших фотографий в DeepZoom-виде.&lt;/a&gt;   &lt;br /&gt;Открыт онлайн-сервис по хранению и просмотру фотографий на базе DeepZoom. Сервис будет доступен до 31.12.2009, так что спешите оценить.   &lt;br /&gt;&lt;a href="http://silverlighter.ru/blogs/silverlighter_blog/archive/2009/04/27/webby-awards-ispoljzuet-silverlight.aspx"&gt;Webby Awards использует Silverlight.&lt;/a&gt;   &lt;br /&gt;Крупнейшая в мире интернет-премия Webby Awards в этом году выбрала технологию Silverlight для предоставления контента на своем сайте.   &lt;br /&gt;&lt;a href="http://silverlighter.ru/blogs/silverlighter_blog/archive/2009/05/06/u-new-york-times-poyavilsya-silverlight-kit.aspx"&gt;У New York Times появился Silverlight Kit.&lt;/a&gt;   &lt;br /&gt;Совсем недавно был анонсирован Silverlight Kit для New York Times APIs.   &lt;br /&gt;  &lt;h2&gt;&lt;a name="sl2"&gt;Компонент DataForm в Silverlight 3.&lt;/a&gt;&lt;/h2&gt;  &lt;p align="justify"&gt;Многие улучшения третьего Сильверлайта направлены, в том числе и на упрощение создания бизнес приложений. Теперь нам доступны .NET RIA Services, а также расширен набор элементов управления для работы с данными. Одним из новых элементов управления является DataForm. О нём мы сегодня и поговорим. Элемент управления DataForm позволяет делать практически всё тоже, что и DataGrid, только в отличие от последнего, DataForm нацелен на работу с одной записью данных, а не с набором. Хотя и позволяет производить навигацию по набору данных, добавлять, удалять, просматривать и редактировать записи. При этом в каждый момент времени отображается только одна запись данных. В данной статье речь пойдёт о том, как работать с формами данных (DataForm). Рассказывается, как в графическом интерфейсе Сильверлайт приложений отобразить произвольную бизнес сущность, настроить валидацию отдельных полей и всей формы в целом, а также освещаются и другие не менее интересные темы, связанные с формами данных. &lt;/p&gt;  &lt;h3&gt;Введение.&lt;/h3&gt;  &lt;p align="justify"&gt;Итак, давайте в Visual Studio 2008 создадим новый проект Silverlight приложения. Если Вы не знаете, как это сделать, обратитесь к соответствующим статьям и скринкастам на нашем сайте. &lt;/p&gt; &lt;img src="http://silverlighter.ru/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/digest/01.jpg" alt="" /&gt;   &lt;p align="justify"&gt;Приложение назовём «DataFormTest». И добавим в раздел References проекта сборку «System.Windows.Controls.Data.DataForm». Она может быть добавлена и автоматически при перетаскивании DataForm из Tolbox в XAML код, но сейчас мы всё сделаем вручную. Перейдём к XAML коду страницы MainPage.xaml и свяжем XML и CLR пространства имён. Это нужно для того, чтобы мы могли видеть из XAML .NET объекты. Для этого добавим код: &lt;/p&gt; xmlns:dataControls=&amp;quot;clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data.DataForm&amp;quot;   &lt;p align="justify"&gt;в элемент UserControl. Теперь он будет выглядеть приблизительно следующим образом: &lt;/p&gt;  &lt;blockquote style="background-color:white;"&gt;&lt;code&gt;&lt;font color="#000000" size="2" face="Courier New"&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;UserControl&lt;/font&gt; &lt;font color="#ff0000"&gt;xmlns:dataControls&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data.DataForm&amp;quot;&lt;/font&gt;&amp;#160; &lt;br /&gt;&lt;font color="#ff0000"&gt;x:Class&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;DataFormTest.MainPage&amp;quot;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#ff0000"&gt;xmlns&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&amp;quot;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#ff0000"&gt;xmlns:x&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml&amp;quot;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#ff0000"&gt;MinWidth&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;400&amp;quot;&lt;/font&gt; &lt;font color="#ff0000"&gt;MinHeight&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;300&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;...         &lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;UserControl&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;/font&gt;      &lt;br /&gt;&lt;font color="#808080" size="1"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font color="#808080" size="1"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt;  &lt;p align="justify"&gt;Теперь пришло время добавить на страницу форму данных. &lt;/p&gt;  &lt;blockquote style="background-color:white;"&gt;&lt;code&gt;&lt;font color="#000000" size="2" face="Courier New"&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;dataControls:DataForm&lt;/font&gt; &lt;font color="#ff0000"&gt;x:Name&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;mainData&amp;quot;&lt;/font&gt; &lt;font color="#ff0000"&gt;Margin&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;50&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;dataControls:DataForm&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;       &lt;br /&gt;      &lt;br /&gt;&lt;font color="#808080" size="1"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font color="#808080" size="1"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt;  &lt;p align="justify"&gt;Мы также задали для формы данных имя «mainData».Если запустить приложение, то мы увидим базовый интерфейс формы, но так как самих данных нет, особого интереса он не представляет. &lt;/p&gt;  &lt;p align="justify"&gt;Давайте добавим в проект DataFormTest новый класс «Person», который будет представлять собой данные о человеке. Для этого щёлкнем правой кнопкой мыши по проекту в окне Solution Explorer и выберем «Add-&amp;gt;Class...». В появившемся диалоговом окне зададим имя класса и щёлкнем на кнопку OK. Теперь добавим в созданный нами класс свойства, нужные для хранения информации о человеке. А именно нас интересуют имя, фамилия и дата рождения. Вот полный исходный код данного класса: &lt;/p&gt;  &lt;blockquote style="background-color:white;"&gt;&lt;code&gt;&lt;font color="#000000" size="2" face="Courier New"&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt; &lt;font color="#0000ff"&gt;class&lt;/font&gt; Person         &lt;br /&gt;{         &lt;br /&gt;&amp;#160; &lt;font color="#0000ff"&gt;public&lt;/font&gt; &lt;font color="#0000ff"&gt;string&lt;/font&gt; FirstName { &lt;font color="#0000ff"&gt;get&lt;/font&gt;; &lt;font color="#0000ff"&gt;set&lt;/font&gt;; }         &lt;br /&gt;&amp;#160; &lt;font color="#0000ff"&gt;public&lt;/font&gt; &lt;font color="#0000ff"&gt;string&lt;/font&gt; LastName { &lt;font color="#0000ff"&gt;get&lt;/font&gt;; &lt;font color="#0000ff"&gt;set&lt;/font&gt;; }         &lt;br /&gt;&amp;#160; &lt;font color="#0000ff"&gt;public&lt;/font&gt; &lt;font color="#2b91af"&gt;DateTime&lt;/font&gt; DateOfBirth { &lt;font color="#0000ff"&gt;get&lt;/font&gt;; &lt;font color="#0000ff"&gt;set&lt;/font&gt;; }         &lt;br /&gt;}         &lt;br /&gt;&lt;/font&gt;      &lt;br /&gt;&lt;font color="#808080" size="1"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font color="#808080" size="1"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt;  &lt;p align="justify"&gt;Теперь в C# коде страницы MainPage.xaml создадим новый объект класса Person и установим этот объект текущим элементом данных для ранее созданной формы данных. &lt;/p&gt;  &lt;blockquote style="background-color:white;"&gt;&lt;code&gt;&lt;font color="#000000" size="2" face="Courier New"&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt; MainPage()         &lt;br /&gt;{         &lt;br /&gt;&amp;#160; InitializeComponent();         &lt;br /&gt;        &lt;br /&gt;&amp;#160; Person ivan = &lt;font color="#0000ff"&gt;new&lt;/font&gt; Person();         &lt;br /&gt;&amp;#160; ivan.FirstName = &lt;font color="#a31515"&gt;&amp;quot;Иван&amp;quot;&lt;/font&gt;;         &lt;br /&gt;&amp;#160; ivan.LastName = &lt;font color="#a31515"&gt;&amp;quot;Петров&amp;quot;&lt;/font&gt;;         &lt;br /&gt;&amp;#160; ivan.DateOfBirth=&lt;font color="#0000ff"&gt;new&lt;/font&gt; &lt;font color="#2b91af"&gt;DateTime&lt;/font&gt;(1980,1,1);         &lt;br /&gt;        &lt;br /&gt;&amp;#160; mainData.CurrentItem = ivan;         &lt;br /&gt;}         &lt;br /&gt;&lt;/font&gt;      &lt;br /&gt;&lt;font color="#808080" size="1"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font color="#808080" size="1"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt;  &lt;p align="justify"&gt;Если теперь запустить приложение, то мы увидим следующий интерфейс. &lt;/p&gt;  &lt;p&gt;&lt;img src="http://silverlighter.ru/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/digest/02.jpg" alt="" /&gt; &lt;/p&gt;  &lt;p&gt;Свойства объекта отображаются на форме, причём разные типы данных могут иметь различное визуальное представление. В правом верхнем углу есть кнопка, нажав на которую мы перейдём в режим редактирования данных. &lt;/p&gt; &lt;img src="http://silverlighter.ru/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/digest/03.jpg" alt="" /&gt;   &lt;p align="justify"&gt;На рисунке показан режим редактирования и нажата кнопка в виде календаря рядом с полем даты рождения. Мы можем внести какие-либо изменения и нажать на кнопку «Save». &lt;/p&gt;  &lt;p align="justify"&gt;Но что делать, если нам не требуется отображать все свойства объекта? Для этого случая есть атрибут «Bindable». Вот пример кода установки данного атрибута для фамилии: &lt;/p&gt;  &lt;blockquote style="background-color:white;"&gt;&lt;code&gt;&lt;font color="#000000" size="2" face="Courier New"&gt;[Bindable(&lt;font color="#0000ff"&gt;false&lt;/font&gt;)]         &lt;br /&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt; &lt;font color="#0000ff"&gt;string&lt;/font&gt; LastName { &lt;font color="#0000ff"&gt;get&lt;/font&gt;; &lt;font color="#0000ff"&gt;set&lt;/font&gt;; }         &lt;br /&gt;&lt;/font&gt;      &lt;br /&gt;&lt;font color="#808080" size="1"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font color="#808080" size="1"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt;  &lt;p align="justify"&gt;Первый параметр показывает, производить связывание или нет. Также, если требуется сокрыть все свойства класса можно применить данный атрибут к классу в целом. &lt;/p&gt;  &lt;p align="justify"&gt;Кроме того, используя атрибут «Bindable» можно сделать некоторые свойства доступными только для чтения: &lt;/p&gt;  &lt;blockquote style="background-color:white;"&gt;&lt;code&gt;&lt;font color="#000000" size="2" face="Courier New"&gt;[Bindable(&lt;font color="#0000ff"&gt;true&lt;/font&gt;, BindingDirection.OneWay)]         &lt;br /&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt; &lt;font color="#0000ff"&gt;string&lt;/font&gt; LastName { &lt;font color="#0000ff"&gt;get&lt;/font&gt;; &lt;font color="#0000ff"&gt;set&lt;/font&gt;; }         &lt;br /&gt;&lt;/font&gt;      &lt;br /&gt;&lt;font color="#808080" size="1"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font color="#808080" size="1"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt;  &lt;p align="justify"&gt;В этом случае связывание происходит только в одну сторону. Теперь давайте сделаем так, чтобы в форме данных отображалось не имя свойства, а заданный нами текст. Для этого можно использовать атрибут «Display» (предварительно надо подключить сборку System.ComponentModel.DataAnnotations.dll): &lt;/p&gt;  &lt;blockquote style="background-color:white;"&gt;&lt;code&gt;&lt;font color="#000000" size="2" face="Courier New"&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt; &lt;font color="#0000ff"&gt;class&lt;/font&gt; Person         &lt;br /&gt;{         &lt;br /&gt;&amp;#160; [Display(Name = &lt;font color="#a31515"&gt;&amp;quot;Имя&amp;quot;&lt;/font&gt;)]         &lt;br /&gt;&amp;#160; &lt;font color="#0000ff"&gt;public&lt;/font&gt; &lt;font color="#0000ff"&gt;string&lt;/font&gt; FirstName { &lt;font color="#0000ff"&gt;get&lt;/font&gt;; &lt;font color="#0000ff"&gt;set&lt;/font&gt;; }         &lt;br /&gt;&amp;#160; [Display(Name = &lt;font color="#a31515"&gt;&amp;quot;Фамилия&amp;quot;&lt;/font&gt;)]         &lt;br /&gt;&amp;#160; &lt;font color="#0000ff"&gt;public&lt;/font&gt; &lt;font color="#0000ff"&gt;string&lt;/font&gt; LastName { &lt;font color="#0000ff"&gt;get&lt;/font&gt;; &lt;font color="#0000ff"&gt;set&lt;/font&gt;; }         &lt;br /&gt;&amp;#160; [Display(Name = &lt;font color="#a31515"&gt;&amp;quot;Дата рождения&amp;quot;&lt;/font&gt;)]         &lt;br /&gt;&amp;#160; &lt;font color="#0000ff"&gt;public&lt;/font&gt; &lt;font color="#2b91af"&gt;DateTime&lt;/font&gt; DateOfBirth { &lt;font color="#0000ff"&gt;get&lt;/font&gt;; &lt;font color="#0000ff"&gt;set&lt;/font&gt;; }         &lt;br /&gt;}         &lt;br /&gt;&lt;/font&gt;      &lt;br /&gt;&lt;font color="#808080" size="1"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font color="#808080" size="1"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt; &lt;img src="http://silverlighter.ru/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/digest/04.jpg" alt="" /&gt;   &lt;p align="justify"&gt;У атрибута «Display» есть и другие свойства, например можно задать описание свойств класса и порядок расположения свойств на форме данных. &lt;/p&gt;  &lt;blockquote style="background-color:white;"&gt;&lt;code&gt;&lt;font color="#000000" size="2" face="Courier New"&gt;[Display(Name = &lt;font color="#a31515"&gt;&amp;quot;Имя&amp;quot;&lt;/font&gt;, Description = &lt;font color="#a31515"&gt;&amp;quot;Имя человека&amp;quot;&lt;/font&gt;, Order = 1)]         &lt;br /&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt; &lt;font color="#0000ff"&gt;string&lt;/font&gt; FirstName { &lt;font color="#0000ff"&gt;get&lt;/font&gt;; &lt;font color="#0000ff"&gt;set&lt;/font&gt;; }         &lt;br /&gt;&lt;/font&gt;      &lt;br /&gt;&lt;font color="#808080" size="1"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font color="#808080" size="1"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt;  &lt;p align="justify"&gt;Если задано описание, то оно отображается при наведении на маленький значок рядом со свойством. &lt;/p&gt; &lt;img src="http://silverlighter.ru/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/digest/07.jpg" alt="" /&gt;   &lt;p align="justify"&gt;Для свойства имени также задан порядковый номер. Но, так как для других свойств порядок не задан, они отображаются выше. &lt;/p&gt;  &lt;h3&gt;Отмена внесённых изменений.&lt;/h3&gt;  &lt;p align="justify"&gt;Сейчас, нажав на кнопку «редактировать», мы видим внизу формы только кнопку «сохранить». Возможность отмены внесённых изменений не включена. Чтобы появилась кнопка «отменить», нам надо реализовать в классе Person интерфейс IEditableObject: &lt;/p&gt;  &lt;blockquote style="background-color:white;"&gt;&lt;code&gt;&lt;font color="#000000" size="2" face="Courier New"&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt; &lt;font color="#0000ff"&gt;class&lt;/font&gt; Person : IEditableObject&lt;/font&gt;       &lt;br /&gt;      &lt;br /&gt;&lt;font color="#808080" size="1"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font color="#808080" size="1"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt;  &lt;p align="justify"&gt;Интерфейс содержит следующие функции: &lt;/p&gt;  &lt;blockquote style="background-color:white;"&gt;&lt;code&gt;&lt;font color="#000000" size="2" face="Courier New"&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt; &lt;font color="#0000ff"&gt;void&lt;/font&gt; BeginEdit()         &lt;br /&gt;{         &lt;br /&gt;        &lt;br /&gt;}         &lt;br /&gt;        &lt;br /&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt; &lt;font color="#0000ff"&gt;void&lt;/font&gt; CancelEdit()         &lt;br /&gt;{         &lt;br /&gt;        &lt;br /&gt;}         &lt;br /&gt;        &lt;br /&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt; &lt;font color="#0000ff"&gt;void&lt;/font&gt; EndEdit()         &lt;br /&gt;{         &lt;br /&gt;        &lt;br /&gt;}         &lt;br /&gt;&lt;/font&gt;      &lt;br /&gt;&lt;font color="#808080" size="1"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font color="#808080" size="1"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt;  &lt;p align="justify"&gt;Мы можем обработать момент начала редактирования (BeginEdit), конца редактирования (EndEdit) и нажатия кнопки отмены (CancelEdit). &lt;/p&gt;  &lt;img src="http://silverlighter.ru/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/digest/08.jpg" alt="" /&gt;  &lt;p align="justify"&gt;После реализации интерфейса, как видно на рисунке, кнопка «Cancel» в режиме редактирования отображается, но саму функциональность отмены придется реализовывать самостоятельно. &lt;/p&gt;  &lt;h3&gt;Валидация данных.&lt;/h3&gt;  &lt;p align="justify"&gt;Очень интересной возможностью компонента DataForm является встроенная поддержка валидации данных и вывода сообщений об ошибках. Настройки для валидации данных могут задаваться с помощью атрибутов у классов, представляющих сущности данных. &lt;/p&gt;  &lt;p align="justify"&gt;Рассмотрим атрибут «Required». Он позволяет определить обязательные свойства, то есть такие свойства, которые при редактировании пользователь обязательно должен задать. Вот пример использования данного атрибута: &lt;/p&gt;  &lt;blockquote style="background-color:white;"&gt;&lt;code&gt;&lt;font color="#000000" size="2" face="Courier New"&gt;[Required(ErrorMessage=&lt;font color="#a31515"&gt;&amp;quot;Имя является обязательным&amp;quot;&lt;/font&gt;)]         &lt;br /&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt; &lt;font color="#0000ff"&gt;string&lt;/font&gt; FirstName { &lt;font color="#0000ff"&gt;get&lt;/font&gt;; &lt;font color="#0000ff"&gt;set&lt;/font&gt;; }         &lt;br /&gt;&lt;/font&gt;      &lt;br /&gt;&lt;font color="#808080" size="1"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font color="#808080" size="1"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt;  &lt;img src="http://silverlighter.ru/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/digest/05.jpg" alt="" /&gt;  &lt;p align="justify"&gt;Обязательные свойства при редактировании отображаются жирным шрифтом. При этом если удалить текст из поля «Имя» и нажать кнопку «Save», появится сообщение об ошибке, которое Вы можете видеть на рисунке. В сообщении будет отображаться заданный нами текст. Если же мы определим атрибут Required без параметра ErrorMessage, пользователь увидит стандартное сообщение. &lt;/p&gt;  &lt;p align="justify"&gt;Задав атрибут «StringLength», можно указать максимальную длину текста, вводимого пользователем. &lt;/p&gt;  &lt;blockquote style="background-color:white;"&gt;&lt;code&gt;&lt;font color="#000000" size="2" face="Courier New"&gt;[StringLength(10)]        &lt;br /&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt; &lt;font color="#0000ff"&gt;string&lt;/font&gt; LastName { &lt;font color="#0000ff"&gt;get&lt;/font&gt;; &lt;font color="#0000ff"&gt;set&lt;/font&gt;; }         &lt;br /&gt;&lt;/font&gt;      &lt;br /&gt;&lt;font color="#808080" size="1"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font color="#808080" size="1"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt;  &lt;p align="justify"&gt;А атрибут «Range» позволяет задать допустимый интервал для числовых свойств. &lt;/p&gt;  &lt;blockquote style="background-color:white;"&gt;&lt;code&gt;&lt;font color="#000000" size="2" face="Courier New"&gt;[Range(10,50)]        &lt;br /&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt; &lt;font color="#0000ff"&gt;int&lt;/font&gt; MyProperty { &lt;font color="#0000ff"&gt;get&lt;/font&gt;; &lt;font color="#0000ff"&gt;set&lt;/font&gt;; }         &lt;br /&gt;&lt;/font&gt;      &lt;br /&gt;&lt;font color="#808080" size="1"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font color="#808080" size="1"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt;  &lt;p align="justify"&gt;Кроме того есть атрибут «RegularExpression», который позволяет использовать для валидации вводимых значение регулярные выражения.&lt;/p&gt;  &lt;img src="http://silverlighter.ru/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/digest/re.jpg" alt="" /&gt;  &lt;p align="justify"&gt;Но атрибуты использовать не обязательно. Давайте зададим для свойства даты рождения get и set функции и произведём валидацию в коде. Для хранения даты рождения мы добавим в класс поле dateOfBirth. &lt;/p&gt;  &lt;blockquote style="background-color:white;"&gt;&lt;code&gt;&lt;font color="#000000" size="2" face="Courier New"&gt;&lt;font color="#0000ff"&gt;private&lt;/font&gt; &lt;font color="#2b91af"&gt;DateTime&lt;/font&gt; _dateOfBirth;         &lt;br /&gt;        &lt;br /&gt;[Display(Name = &lt;font color="#a31515"&gt;&amp;quot;Дата рождения&amp;quot;&lt;/font&gt;)]         &lt;br /&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt; &lt;font color="#2b91af"&gt;DateTime&lt;/font&gt; DateOfBirth         &lt;br /&gt;{         &lt;br /&gt;&amp;#160; &lt;font color="#0000ff"&gt;get&lt;/font&gt;         &lt;br /&gt;&amp;#160; {         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;return&lt;/font&gt; _dateOfBirth;         &lt;br /&gt;&amp;#160; }         &lt;br /&gt;&amp;#160; &lt;font color="#0000ff"&gt;set&lt;/font&gt;         &lt;br /&gt;&amp;#160; {         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;if&lt;/font&gt; (&lt;font color="#0000ff"&gt;value&lt;/font&gt; &amp;gt; &lt;font color="#2b91af"&gt;DateTime&lt;/font&gt;.Now)         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;throw&lt;/font&gt; &lt;font color="#0000ff"&gt;new&lt;/font&gt; InvalidOperationException(&lt;font color="#a31515"&gt;&amp;quot;Привет тебе, гость из будущего!&amp;quot;&lt;/font&gt;);         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; _dateOfBirth = &lt;font color="#0000ff"&gt;value&lt;/font&gt;;         &lt;br /&gt;&amp;#160; }         &lt;br /&gt;}         &lt;br /&gt;&lt;/font&gt;      &lt;br /&gt;&lt;font color="#808080" size="1"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font color="#808080" size="1"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt;  &lt;p align="justify"&gt;Как видно из кода, в случае, если дата рождения больше текущей даты, мы генерируем исключение. DataForm обрабатывает исключение и показывает сообщение об ошибке. &lt;/p&gt;  &lt;img src="http://silverlighter.ru/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/digest/06.jpg" alt="" /&gt;  &lt;p align="justify"&gt;В случае если нам надо разделить логику валидации и код класса, можно написать для этих целей дополнительный класс и определить логику валидации там. Установить класс и метод валидации мы можем с помощью атрибута: &lt;/p&gt;  &lt;blockquote style="background-color:white;"&gt;&lt;code&gt;&lt;font color="#000000" size="2" face="Courier New"&gt;[CustomValidation(&lt;font color="#0000ff"&gt;typeof&lt;/font&gt;(PersonValidator),&lt;font color="#a31515"&gt;&amp;quot;ValidatePerson&amp;quot;&lt;/font&gt;)]         &lt;br /&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt; &lt;font color="#0000ff"&gt;class&lt;/font&gt; Person         &lt;br /&gt;&lt;/font&gt;      &lt;br /&gt;&lt;font color="#808080" size="1"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font color="#808080" size="1"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt;  &lt;p align="justify"&gt;Вот, собственно, код класса валидатора: &lt;/p&gt;  &lt;blockquote style="background-color:white;"&gt;&lt;code&gt;&lt;font color="#000000" size="2" face="Courier New"&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt; &lt;font color="#0000ff"&gt;class&lt;/font&gt; PersonValidator         &lt;br /&gt;{         &lt;br /&gt;&amp;#160; &lt;font color="#0000ff"&gt;public&lt;/font&gt; &lt;font color="#0000ff"&gt;static&lt;/font&gt; &lt;font color="#0000ff"&gt;bool&lt;/font&gt; ValidatePerson(Person p)         &lt;br /&gt;&amp;#160; {         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;return&lt;/font&gt; &lt;font color="#0000ff"&gt;false&lt;/font&gt;;         &lt;br /&gt;&amp;#160; }         &lt;br /&gt;}         &lt;br /&gt;&lt;/font&gt;      &lt;br /&gt;&lt;font color="#808080" size="1"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font color="#808080" size="1"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt;  &lt;p align="justify"&gt;Определить атрибут «CustomValidation» можно и у любого конкретного свойства. &lt;/p&gt;  &lt;h3&gt;Работа с набором данных.&lt;/h3&gt;  &lt;p align="justify"&gt;До сих пор мы работали только с одним объектом данных. Теперь давайте посмотрим, как работать с набором объектов. &lt;/p&gt;  &lt;p align="justify"&gt;Для этого удалим наши изменения конструктора класса MainPage и добавим код создания набора объектов класса Person. А также свяжем свойство ItemsSource формы данных с созданной нами коллекцией: &lt;/p&gt;  &lt;blockquote style="background-color:white;"&gt;&lt;code&gt;&lt;font color="#000000" size="2" face="Courier New"&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt; MainPage()         &lt;br /&gt;{         &lt;br /&gt;&amp;#160; InitializeComponent();         &lt;br /&gt;        &lt;br /&gt;&amp;#160; ObservableCollection&amp;lt;Person&amp;gt; persons = &lt;font color="#0000ff"&gt;new&lt;/font&gt; ObservableCollection&amp;lt;Person&amp;gt;();         &lt;br /&gt;        &lt;br /&gt;&amp;#160; persons.Add(&lt;font color="#0000ff"&gt;new&lt;/font&gt; Person() { FirstName = &lt;font color="#a31515"&gt;&amp;quot;Иван&amp;quot;&lt;/font&gt;, LastName = &lt;font color="#a31515"&gt;&amp;quot;Петров&amp;quot;&lt;/font&gt;, DateOfBirth = &lt;font color="#2b91af"&gt;DateTime&lt;/font&gt;.Now });         &lt;br /&gt;&amp;#160; persons.Add(&lt;font color="#0000ff"&gt;new&lt;/font&gt; Person() { FirstName = &lt;font color="#a31515"&gt;&amp;quot;Пётр&amp;quot;&lt;/font&gt;, LastName = &lt;font color="#a31515"&gt;&amp;quot;Иванов&amp;quot;&lt;/font&gt;, DateOfBirth = &lt;font color="#2b91af"&gt;DateTime&lt;/font&gt;.Now });         &lt;br /&gt;&amp;#160; persons.Add(&lt;font color="#0000ff"&gt;new&lt;/font&gt; Person() { FirstName = &lt;font color="#a31515"&gt;&amp;quot;Владимир&amp;quot;&lt;/font&gt;, LastName = &lt;font color="#a31515"&gt;&amp;quot;Сидоров&amp;quot;&lt;/font&gt;, DateOfBirth = &lt;font color="#2b91af"&gt;DateTime&lt;/font&gt;.Now });         &lt;br /&gt;        &lt;br /&gt;&amp;#160; mainData.ItemsSource = persons;         &lt;br /&gt;}         &lt;br /&gt;&lt;/font&gt;      &lt;br /&gt;&lt;font color="#808080" size="1"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font color="#808080" size="1"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt;  &lt;p align="justify"&gt;Запустим программу и увидим, что мы можем переходить от одной записи к другой, добавлять, удалять и редактировать записи. &lt;/p&gt;  &lt;img src="http://silverlighter.ru/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/digest/09.jpg" alt="" /&gt;  &lt;h3&gt;Настройка формы данных.&lt;/h3&gt;  &lt;p align="justify"&gt;Хотелось бы отметить, что у формы данных достаточно много свойств, позволяющих задать её внешний вид. Например, свойство «Header» позволяет установить заголовок формы, а свойство «FieldLabelPosition» задаёт расположение подписей: &lt;/p&gt;  &lt;blockquote style="background-color:white;"&gt;&lt;code&gt;&lt;font color="#000000" size="2" face="Courier New"&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;dataControls:DataForm&lt;/font&gt; &lt;font color="#ff0000"&gt;x:Name&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;mainData&amp;quot;&lt;/font&gt; &lt;font color="#ff0000"&gt;Margin&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;50&amp;quot;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#ff0000"&gt;Header&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;Сотрудники&amp;quot;&lt;/font&gt; &lt;font color="#ff0000"&gt;FieldLabelPosition&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;Top&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;dataControls:DataForm&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;/font&gt;      &lt;br /&gt;&lt;font color="#808080" size="1"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font color="#808080" size="1"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt;  &lt;img src="http://silverlighter.ru/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/digest/10.jpg" alt="" /&gt;  &lt;p align="justify"&gt;Благодаря свойству «CanUserDeleteItems», можно включить или отключить возможность удаления записей. А свойства «CommitButtonContent» и «CancelButtonContent» задают текст на кнопках «Save» и «Cancel» соответственно. Есть и другие полезные свойства, назначения которых также легко понять по их названиям. &lt;/p&gt;  &lt;h2&gt;&lt;a name="sl3"&gt;Стилизация каретки в Silverlight 3.&lt;/a&gt;&lt;/h2&gt;  &lt;p align="justify"&gt;Мы все уже давно привыкли, что текущее положение каретки в документе можно визуально определить по мигающей вертикальной линии. Помните, как она выглядит? Узкая, шириной в несколько пикселей, полоска, окрашенная инвертированным фоновым цветом. Весьма неожиданно, но в третьей версии сильверлайта мы можем самостоятельно задавать стиль каретки! &lt;/p&gt;  &lt;p align="justify"&gt;У элемента TextBox появилось свойство CaretBrush, которое позволяет задать кисть, которой будет окрашена каретка. Например, можно задать в качестве фона каретки градиент, состоящий из цветов радуги: &lt;/p&gt;  &lt;blockquote style="background-color:white;"&gt;&lt;code&gt;&lt;font color="#000000" size="2" face="Courier New"&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;TextBox&lt;/font&gt; &lt;font color="#ff0000"&gt;FontSize&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;70&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&amp;#160; &lt;br /&gt;&amp;#160; &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;TextBox.CaretBrush&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;LinearGradientBrush&lt;/font&gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ff0000"&gt;MappingMode&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;RelativeToBoundingBox&amp;quot;&lt;/font&gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ff0000"&gt;StartPoint&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;0,0&amp;quot;&lt;/font&gt; &lt;font color="#ff0000"&gt;EndPoint&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;0,1&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;LinearGradientBrush.GradientStops&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;GradientStop&lt;/font&gt; &lt;font color="#ff0000"&gt;Color&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;Red&amp;quot;&lt;/font&gt; &lt;font color="#ff0000"&gt;Offset&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;0&amp;quot;&lt;/font&gt; &lt;font color="#0000ff"&gt;/&amp;gt;&lt;/font&gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;GradientStop&lt;/font&gt; &lt;font color="#ff0000"&gt;Color&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;Orange&amp;quot;&lt;/font&gt; &lt;font color="#ff0000"&gt;Offset&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;0.170&amp;quot;&lt;/font&gt; &lt;font color="#0000ff"&gt;/&amp;gt;&lt;/font&gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;GradientStop&lt;/font&gt; &lt;font color="#ff0000"&gt;Color&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;Yellow&amp;quot;&lt;/font&gt; &lt;font color="#ff0000"&gt;Offset&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;0.332&amp;quot;&lt;/font&gt; &lt;font color="#0000ff"&gt;/&amp;gt;&lt;/font&gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;GradientStop&lt;/font&gt; &lt;font color="#ff0000"&gt;Color&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;Green&amp;quot;&lt;/font&gt; &lt;font color="#ff0000"&gt;Offset&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;0.5&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;/&amp;gt;&lt;/font&gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;GradientStop&lt;/font&gt; &lt;font color="#ff0000"&gt;Color&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;Blue&amp;quot;&lt;/font&gt; &lt;font color="#ff0000"&gt;Offset&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;0.633&amp;quot;&lt;/font&gt; &lt;font color="#0000ff"&gt;/&amp;gt;&lt;/font&gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;GradientStop&lt;/font&gt; &lt;font color="#ff0000"&gt;Color&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;Indigo&amp;quot;&lt;/font&gt; &lt;font color="#ff0000"&gt;Offset&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;0.812&amp;quot;&lt;/font&gt; &lt;font color="#0000ff"&gt;/&amp;gt;&lt;/font&gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;GradientStop&lt;/font&gt; &lt;font color="#ff0000"&gt;Color&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;Violet&amp;quot;&lt;/font&gt; &lt;font color="#ff0000"&gt;Offset&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;1&amp;quot;&lt;/font&gt; &lt;font color="#0000ff"&gt;/&amp;gt;&lt;/font&gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;LinearGradientBrush.GradientStops&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;LinearGradientBrush&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&amp;#160; &lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;TextBox.CaretBrush&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;TextBox&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;/font&gt;      &lt;br /&gt;&lt;font color="#808080" size="1"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font color="#808080" size="1"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt;  &lt;p align="justify"&gt;Вы можете использовать любую доступную кисть: SolidColorBrush, LinearGradientBrush, RadialGradientBrush, ImageBrush или VideoBrush. &lt;/p&gt;  &lt;h2&gt;&lt;a name="sl4"&gt;Обходим кеширование изображений.&lt;/a&gt;&lt;/h2&gt;  &lt;p align="justify"&gt;Сильверлайт устроен так, что по умолчанию он кэширует изображения, получаемые с сервера. Если вы задаете в качестве источника изображения для элемента Image картинку по URI-адресу, с которого она ранее уже была загружена, то ваше приложение не скачивает изображение с сервера, а берет из КЭШа. Это поведение можно очень легко изменить - достаточно задать у экземпляра BitmapImage свойство CreateOptions в BitmapCreateOptions.IgnoreImageCache, как это сделано в этом примере: &lt;/p&gt;  &lt;blockquote style="background-color:white;"&gt;&lt;code&gt;&lt;font color="#000000" size="2" face="Courier New"&gt;Image img = &lt;font color="#0000ff"&gt;new&lt;/font&gt; Image();         &lt;br /&gt;&lt;font color="#2b91af"&gt;Uri&lt;/font&gt; uri =         &lt;br /&gt;&amp;#160;&lt;font color="#0000ff"&gt;new&lt;/font&gt; &lt;font color="#2b91af"&gt;Uri&lt;/font&gt;(&lt;font color="#a31515"&gt;&amp;quot;http://YourServer.com/MyImage.png&amp;quot;&lt;/font&gt;, UriKind.Absolute);         &lt;br /&gt;BitmapImage bi = &lt;font color="#0000ff"&gt;new&lt;/font&gt; System.Windows.Media.Imaging.BitmapImage(uri);         &lt;br /&gt;bi.CreateOptions = BitmapCreateOptions.IgnoreImageCache;         &lt;br /&gt;img.Source = bi;         &lt;br /&gt;LayoutRoot.Children.Add(img);         &lt;br /&gt;&lt;/font&gt;      &lt;br /&gt;&lt;font color="#808080" size="1"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font color="#808080" size="1"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt; &lt;a href="http://silverlight.net/blogs/msnow/archive/2009/03/25/silverlight-tip-of-the-day-101-bypassing-the-image-cache.aspx"&gt;Вот заметка на эту тему (en)&lt;/a&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://silverlighter.ru/aggbug.aspx?PostID=9811" width="1" height="1"&gt;</content><author><name>spugachev</name><uri>http://silverlighter.ru/members/spugachev/default.aspx</uri></author></entry><entry><title>Intuit.ru опубликовал курс "Введение в Microsoft Silverlight 2"</title><link rel="alternate" type="text/html" href="/blogs/digest/archive/2009/04/30/intuit-ru-quot-microsoft-silverlight-2-quot.aspx" /><id>/blogs/digest/archive/2009/04/30/intuit-ru-quot-microsoft-silverlight-2-quot.aspx</id><published>2009-04-30T07:20:02Z</published><updated>2009-04-30T07:20:02Z</updated><content type="html">&lt;p&gt;Всем начинающим сильверлайтерам будет полезно - &lt;a href="http://www.intuit.ru/department/internet/intmsilver2/"&gt;http://www.intuit.ru/department/internet/intmsilver2/&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;В курсе нет чего-то, что бы вы не узнали из этого сайта или книги “Введение в Silverlight 2” Морони, однако, это не делает его менее интересным.&lt;/p&gt;  &lt;p&gt;Цитата из официального анонса:&lt;/p&gt;  &lt;p&gt;“Этот курс может стать вашим первым взгляд на инструменты и технологии создания приложений с использованием Silverlight 2.    &lt;br /&gt;Начните применять Silverlight 2 - кросс-платформенный, кросс-браузерный плагин для представления расширенных мультимедийных интерактивных приложений и пользовательских интерфейсов следующего поколения. Курс основан на знаниях команды разработчиков Microsoft Silverlight, процесс изучения построен с использованием практических упражнений, подробных указаний и примеров кода, чтобы вы сразу могли перейти к собственным разработкам.”&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://silverlighter.ru/aggbug.aspx?PostID=4471" width="1" height="1"&gt;</content><author><name>Sanchez</name><uri>http://silverlighter.ru/members/Sanchez/default.aspx</uri></author><category term="Блог" scheme="http://silverlighter.ru/blogs/digest/archive/tags/_11043B043E043304_/default.aspx" /><category term="Intuit" scheme="http://silverlighter.ru/blogs/digest/archive/tags/Intuit/default.aspx" /><category term="курс для начинающих" scheme="http://silverlighter.ru/blogs/digest/archive/tags/_3A04430440044104_+_34043B044F04_+_3D043004470438043D0430044E04490438044504_/default.aspx" /><category term="Новости" scheme="http://silverlighter.ru/blogs/digest/archive/tags/_1D043E0432043E04410442043804_/default.aspx" /><category term="Silverlight 2" scheme="http://silverlighter.ru/blogs/digest/archive/tags/Silverlight+2/default.aspx" /></entry><entry><title>Бюллетень Сильверлайтера. Выпуск №1.</title><link rel="alternate" type="text/html" href="/blogs/digest/archive/2009/04/08/852.aspx" /><id>/blogs/digest/archive/2009/04/08/852.aspx</id><published>2009-04-08T07:19:00Z</published><updated>2009-04-08T07:19:00Z</updated><content type="html">&lt;h3&gt;9 Апреля 2009 года.&lt;/h3&gt;  &lt;p align="justify"&gt;Хочется сообщить Вам новость от Российского &lt;a href="http://www.silverlighter.ru"&gt;сообщества пользователей Silverlight&lt;/a&gt; – мы начинаем выпускать информационный бюллетень. Бюллетень будет выходить регулярно. Сейчас планируется делать два выпуска в месяц. Если Вы хотите написать статью, скринкаст или заметку для бюллетеня, задать вопрос, предложить идею или просто поговорить про RIA технологии – можете писать на e-mail: &lt;a href="mailto:spugachev@gmail.com"&gt;spugachev@gmail.com&lt;/a&gt; или в форум на нашем сайте: &lt;a href="http://silverlighter.ru/forums/"&gt;http://silverlighter.ru/forums/&lt;/a&gt;. &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://silverlighter.ru/blogs/digest/archive/2009/04/08/852.aspx#sl1"&gt;Silverlight 3. Обзор некоторых новых возможностей.&lt;/a&gt;       &lt;ul&gt;       &lt;li&gt;&lt;a href="http://silverlighter.ru/blogs/digest/archive/2009/04/08/852.aspx#sl11"&gt;Элементы управления&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;&lt;a href="http://silverlighter.ru/blogs/digest/archive/2009/04/08/852.aspx#sl12"&gt;Поддержка 3D&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;&lt;a href="http://silverlighter.ru/blogs/digest/archive/2009/04/08/852.aspx#sl13"&gt;Поддержка работы Silverlight приложений вне браузера&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;&lt;a href="http://silverlighter.ru/blogs/digest/archive/2009/04/08/852.aspx#sl14"&gt;Детектирование наличия/отсутствия сетевого соединения&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;&lt;a href="http://silverlighter.ru/blogs/digest/archive/2009/04/08/852.aspx#sl15"&gt;Navigation Framework&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;a href="http://silverlighter.ru/blogs/digest/archive/2009/04/08/852.aspx#sl2"&gt;Трюки и советы&lt;/a&gt;       &lt;ul&gt;       &lt;li&gt;&lt;a href="http://silverlighter.ru/blogs/digest/archive/2009/04/08/852.aspx#sl21"&gt;Layout transform в Silverlight&lt;/a&gt; &lt;/li&gt;        &lt;li&gt;&lt;a href="http://silverlighter.ru/blogs/digest/archive/2009/04/08/852.aspx#sl22"&gt;Замена класса App в Silverlight приложении&lt;/a&gt; &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;h1&gt;&lt;a name="sl1"&gt;Silverlight 3. Обзор некоторых новых возможностей.&lt;/a&gt;&lt;/h1&gt;  &lt;h2&gt;Введение&lt;/h2&gt;  &lt;p align="justify"&gt;В конце марта вышла бета версия третьего Сильверлайта. Она предназначена, прежде всего, для разработчиков и энтузиастов, а не для конечных пользователей. Релиз же выйдет до конца этого года. Тем разработчикам, кто сомневается, ставить ли данную версию или нет, скажу лишь, что в Silverlight 3 поддерживается полная обратная совместимость с Silverlight 2 и 1. То есть все существующие приложения работают и с новой версией без изменений. &lt;/p&gt;  &lt;p align="justify"&gt;Кроме того есть очень хороша новость - размер инсталлятора для Silverlight 3 не будет превышать аналогичный размер для Silverlight 2. Бета версия Silverlight 3 весит даже на 40кб меньше релиза второй версии. Что, учитывая обилие новых возможностей, не может не радовать. &lt;/p&gt;  &lt;p align="justify"&gt;Вместе с Silverlight 3 Beta вышли и Visual Studio Tools for Silverlight 3. Но, к сожалению, на данный момент нет поддержки мультитаргетинга для Silverlight проектов, &lt;b&gt;поэтому установив Visual Studio Tools for Silverlight 3, Вы не сможете параллельно разрабатывать Silverlight 2 приложения&lt;/b&gt;. Но такое поведение в будущем, конечно же, будет исправлено. &lt;/p&gt;  &lt;p align="justify"&gt;Для того чтобы уже сегодня попробовать новые возможности вам потребуется следующее: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkID=143571"&gt;Silverlight 3 Beta Tools for Visual Studio&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Silverlight 3 Beta developer runtimes: &lt;a href="http://go.microsoft.com/fwlink/?LinkID=143433"&gt;Windows&lt;/a&gt; или &lt;a href="http://go.microsoft.com/fwlink/?LinkID=143434"&gt;Mac&lt;/a&gt; (ставится автоматом с предыдущим) &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/expression/blendpreview"&gt;Microsoft Expression Blend 3 Preview&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://codeplex.com/Silverlight"&gt;Silverlight Toolkit&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=144609"&gt;.NET RIA Services &lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Документация по Silverlight 3 Beta – &lt;a href="http://go.microsoft.com/fwlink/?LinkId=111305"&gt;онлайн&lt;/a&gt; или &lt;a href="http://go.microsoft.com/fwlink/?LinkId=144350"&gt;CHM-файлом&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p align="justify"&gt;Ещё одной не менее приятной новостью является улучшенная компрессия .xap файлов (файлов Silverlight приложений). Размер типичного приложения просто при перекомпиляции в новой версии уменьшается на 10-30%. &lt;/p&gt;  &lt;p align="justify"&gt;Появилась поддержка кэширования сборок (assemblies), не входящих в базовую поставку Silverlight. Благодаря этому пользователь теперь может не скачивать такие сборки вмести с каждым приложением использующем их. К примеру, если разработчик приложения подключит сборку System.Windows.Controls.Data (включив предварительно возможность кэширования таких сборок в свойствах проекта), то внутри .xap файла мы её не найдём. Размер .xap файла также почти не изменится. А в AppManifest.xaml мы увидим следующее: &lt;/p&gt;  &lt;blockquote style="background-color:white;"&gt;&lt;code&gt;&lt;font face="Courier New" color="#000000" size="2"&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;Deployment.ExternalParts&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;ExtensionPart&lt;/font&gt; &lt;font color="#ff0000"&gt;Source&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;http://go.microsoft.com/fwlink/?LinkID= &amp;quot;&lt;/font&gt; &lt;font color="#0000ff"&gt;/&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;Deployment.ExternalParts&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;       &lt;br /&gt;      &lt;br /&gt;&lt;font color="#808080" size="1"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font color="#808080" size="1"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt;  &lt;p align="justify"&gt;Где «XXXXXX» обозначает код сборки. При загрузке приложения сборка скачивается с сайта Microsoft и кэшируется. Это даёт возможность разработчикам сделать свои приложения ещё меньше. &lt;/p&gt;  &lt;p align="justify"&gt;Однако обратите внимание, что кэширование по умолчанию не включено и включается оно для каждого конкретного приложения в свойствах проекта в Visual Studio установкой галочки «Reduce Xap size by caching framework extension assemblies». &lt;/p&gt;  &lt;p align="justify"&gt;Visual Studio 2010 будет содержать мощный интерактивный дизайнер для XAML кода Silverlight приложений. Будет улучшен также и IntelliSense. Но сейчас Вы можете только посмотреть демонстрацию на английском про то, как это будет выглядеть и работать. В текущей же версии такого дизайнера нет. Пока визуально редактировать Silverlight приложения в Visual Studio нельзя. &lt;/p&gt;  &lt;p align="justify"&gt;Для тех, кто предпочитает работать не в Visual Studio, а в Eclipse, есть отличная новость. Анонсирована поддержка разработки Silverlight приложений с помощью Eclipse на платформе Apple Macintosh (&lt;a href="http://eclipse4sl.org/download/mac/"&gt;http://eclipse4sl.org/download/mac/&lt;/a&gt;). Но не забывайте, что Вы можете использовать Eclipse уже сейчас и для разработки Silverlight-приложений на платформе Windows . &lt;/p&gt;  &lt;p align="justify"&gt;И, конечно, дизайнеры будут рады выходу Expression Blend 3 Preview. В этой версии доступно огромное количество новых интересных и захватывающих возможностей, о которых Вы сможете прочитать в следующих выпусках данного бюллетеня. &lt;/p&gt;  &lt;h2&gt;&lt;a name="sl11"&gt;Элементы управления&lt;/a&gt;&lt;/h2&gt;  &lt;p align="justify"&gt;Многие разработчики с нетерпением ждали расширения списка доступных элементов управления, и это произошло. Было добавлено много элементов управления. В том числе, некоторые были перенесены из Silverlight Toolkit в runtime. Вот их список: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;DockPanel &lt;/li&gt;    &lt;li&gt;WrapPanel &lt;/li&gt;    &lt;li&gt;Label &lt;/li&gt;    &lt;li&gt;ViewBox &lt;/li&gt;    &lt;li&gt;AutoCompleteBox &lt;/li&gt;    &lt;li&gt;DataGrid &lt;/li&gt;    &lt;li&gt;TreeView &lt;/li&gt;    &lt;li&gt;Expander &lt;/li&gt;    &lt;li&gt;HeaderedItemsControl &lt;/li&gt;    &lt;li&gt;HeaderedContentControl &lt;/li&gt; &lt;/ul&gt;  &lt;p align="justify"&gt;Все они уже достаточно хорошо знакомы. Однако в Silverlight 3 есть и абсолютно новые элементы управления: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;DataForm&lt;/b&gt;. Настраиваемый элемент управления, отображающий одновременно одну сущность данных (объект, таблицу и.т.д.). Поддерживается удобное отображение, редактирование и навигация по источникам данных. &lt;/li&gt;    &lt;li&gt;&lt;b&gt;DataPager&lt;/b&gt;. Название данного элемента управления говорит само за себя. Поддерживается постраничный просмотр, для источников данных, реализующих интерфейс IPagedViewCollection. При работе с .NET RIA Services (ObjectDataSource поддерживает интерфейс IPagedViewCollection), DataPager позволяет быстро и эффективно постранично просматривать данные без необходимости загружать все страницы сразу на клиент. &lt;/li&gt;    &lt;li&gt;&lt;b&gt;Navigation Framework&lt;/b&gt;. Данный framework содержит два элемента управления: Frame и Page. Используя их, Вы сможете легко добавить постраничную навигацию (это похоже на то, как приходит навигация между HTML страницами) внутрь Вашего Silverlight приложения. Поддерживаются кнопки «Вперёд» и «Назад», а также журнал браузера. Кроме того теперь при переходе между страницами внутри Silverlight приложений адрес в адресной строке браузера также меняется. И благодаря этому теперь Вы можете дать пользователю ссылку, указывающую на какой-либо ресурс глубоко внутри Silverlight приложения. Что раньше было сделать затруднительно. Для тех, кто занимается поисковой оптимизацией (SEO), это является большим преимуществом новой версии. &lt;/li&gt; &lt;/ul&gt;  &lt;p align="justify"&gt;Ну и, конечно же, новинки появились и в &lt;a href="http://www.codeplex.com/Silverlight"&gt;Silverlight Toolkit&lt;/a&gt;. Добавлены следующие замечательные элементы управления: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;DomainUpDown &lt;/li&gt;    &lt;li&gt;TimePicker &lt;/li&gt;    &lt;li&gt;Accordion &lt;/li&gt;    &lt;li&gt;ChildWindow (модальное диалоговое окно). Позволяет создать всплывающее диалоговое окно, блокирующее интерфейс приложения. Создать ChildWindow достаточно просто. Для этого в Visual Studio правой кнопкой мыши нажмите на проекте Silverlight приложения и выберете Add-&amp;gt;New Item-&amp;gt; Silverlight Child Window. Присвойте окну имя и нажмите кнопку «OK». Будет создан XAML файл, содержащий примерно такой код: &lt;/li&gt; &lt;/ul&gt;  &lt;blockquote style="background-color:white;"&gt;&lt;code&gt;&lt;font face="Courier New" color="#000000" size="2"&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;controls:ChildWindow&lt;/font&gt;         &lt;br /&gt;&lt;font color="#ff0000"&gt;x:Class&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;SilverlightApplication3.ChildWindow1&amp;quot;&lt;/font&gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#ff0000"&gt;xmlns&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&amp;quot;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#ff0000"&gt;xmlns:x&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml&amp;quot;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#ff0000"&gt;xmlns:controls&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls&amp;quot;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#ff0000"&gt;Width&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;400&amp;quot;&lt;/font&gt; &lt;font color="#ff0000"&gt;Height&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;300&amp;quot;&lt;/font&gt; &lt;font color="#ff0000"&gt;Title&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;ChildWindow1&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;Grid&lt;/font&gt; &lt;font color="#ff0000"&gt;x:Name&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;LayoutRoot&amp;quot;&lt;/font&gt; &lt;font color="#ff0000"&gt;Margin&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;2&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;Grid.RowDefinitions&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;RowDefinition&lt;/font&gt; &lt;font color="#0000ff"&gt;/&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;RowDefinition&lt;/font&gt; &lt;font color="#ff0000"&gt;Height&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;Auto&amp;quot;&lt;/font&gt; &lt;font color="#0000ff"&gt;/&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;Grid.RowDefinitions&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;        &lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;Button&lt;/font&gt; &lt;font color="#ff0000"&gt;x:Name&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;CancelButton&amp;quot;&lt;/font&gt; &lt;font color="#ff0000"&gt;Content&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;Cancel&amp;quot;&lt;/font&gt; &lt;font color="#ff0000"&gt;Click&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;CancelButton_Click&amp;quot;&lt;/font&gt; &lt;font color="#ff0000"&gt;Width&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;75&amp;quot;&lt;/font&gt; &lt;font color="#ff0000"&gt;Height&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;23&amp;quot;&lt;/font&gt; &lt;font color="#ff0000"&gt;HorizontalAlignment&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;Right&amp;quot;&lt;/font&gt; &lt;font color="#ff0000"&gt;Margin&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;0,12,0,0&amp;quot;&lt;/font&gt; &lt;font color="#ff0000"&gt;Grid&lt;/font&gt;.&lt;font color="#ff0000"&gt;Row&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;1&amp;quot;&lt;/font&gt; &lt;font color="#0000ff"&gt;/&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;Button&lt;/font&gt; &lt;font color="#ff0000"&gt;x:Name&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;OKButton&amp;quot;&lt;/font&gt; &lt;font color="#ff0000"&gt;Content&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;OK&amp;quot;&lt;/font&gt; &lt;font color="#ff0000"&gt;Click&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;OKButton_Click&amp;quot;&lt;/font&gt; &lt;font color="#ff0000"&gt;Width&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;75&amp;quot;&lt;/font&gt; &lt;font color="#ff0000"&gt;Height&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;23&amp;quot;&lt;/font&gt; &lt;font color="#ff0000"&gt;HorizontalAlignment&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;Right&amp;quot;&lt;/font&gt; &lt;font color="#ff0000"&gt;Margin&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;0,12,79,0&amp;quot;&lt;/font&gt; &lt;font color="#ff0000"&gt;Grid&lt;/font&gt;.&lt;font color="#ff0000"&gt;Row&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;1&amp;quot;&lt;/font&gt; &lt;font color="#0000ff"&gt;/&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;Grid&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;controls:ChildWindow&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;       &lt;br /&gt;      &lt;br /&gt;&lt;font color="#808080" size="1"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font color="#808080" size="1"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt;  &lt;table&gt;     &lt;tr&gt;       &lt;td style="vertical-align:top;"&gt;Использовать диалоговое окно можно следующим образом:          &lt;blockquote style="background-color:white;"&gt;&lt;code&gt;&lt;font face="Courier New" color="#000000" size="2"&gt;ChildWindow1 cw = &lt;font color="#0000ff"&gt;new&lt;/font&gt; ChildWindow1();                 &lt;br /&gt;cw.Show();&lt;/font&gt;               &lt;br /&gt;              &lt;br /&gt;&lt;font color="#808080" size="1"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font color="#808080" size="1"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt;       &lt;/td&gt;        &lt;td&gt;&lt;a href="http://silverlighter.ru/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/digest/img01_5F00_3A50860C.jpg"&gt;&lt;img title="img01" style="border-top-width:0px;display:inline;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="189" alt="img01" src="http://silverlighter.ru/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/digest/img01_5F00_thumb_5F00_39782022.jpg" width="240" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/table&gt;  &lt;p align="justify"&gt;Важной возможностью, относящейся к элементам управления, в Silverlight 3 является поддержка связывания свойств различных элементов напрямую (Element-to-Element Binding). Например: &lt;/p&gt;  &lt;blockquote style="background-color:white;"&gt;&lt;code&gt;&lt;font face="Courier New" color="#000000" size="2"&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;Grid&lt;/font&gt; &lt;font color="#ff0000"&gt;x:Name&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;LayoutRoot&amp;quot;&lt;/font&gt; &lt;font color="#ff0000"&gt;Background&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;White&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;StackPanel&lt;/font&gt; &lt;font color="#ff0000"&gt;Orientation&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;Vertical&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;Slider&lt;/font&gt; &lt;font color="#ff0000"&gt;x:Name&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;myslider&amp;quot;&lt;/font&gt; &lt;font color="#ff0000"&gt;Minimum&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;0&amp;quot;&lt;/font&gt; &lt;font color="#ff0000"&gt;Maximum&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;100&amp;quot;&lt;/font&gt; &lt;font color="#0000ff"&gt;/&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;TextBlock&lt;/font&gt; &lt;font color="#ff0000"&gt;Text&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;{Binding Value, ElementName=myslider}&amp;quot;&lt;/font&gt; &lt;font color="#0000ff"&gt;/&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;StackPanel&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;Grid&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;/font&gt;      &lt;br /&gt;&lt;font color="#808080" size="1"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font color="#808080" size="1"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt;  &lt;p align="justify"&gt;Можно связать текст текстового блока со значением ползунка (Slider). Это происходит благодаря данной конструкции: {Binding Value, ElementName=myslider}. &lt;/p&gt;  &lt;p align="justify"&gt;&lt;a href="http://silverlighter.ru/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/digest/img02_5F00_6DAC4968.jpg"&gt;&lt;img title="img02" style="border-top-width:0px;display:inline;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="112" alt="img02" src="http://silverlighter.ru/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/digest/img02_5F00_thumb_5F00_15FB7BBD.jpg" width="240" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p align="justify"&gt;И каждый раз, когда пользователь будет, двигая ползунок, изменять его значение, текст в тестовом блоке тоже будет меняться. При этом ни строчки кода писать не требуется. &lt;/p&gt;  &lt;p align="justify"&gt;Есть ещё одно нововведение, которое мне кажется потрясающе полезным. Я говорю про SaveFileDialog. Диалог сохранения файлов. В Silverlight 2 был только OpenFileDialog, теперь же у нас есть и второй участник дуэта. Благодаря SaveFileDialog, появляется возможность записать что-то на компьютер пользователя (конечно, с его согласия) за пределами изолированного хранилища. Ниже приведён пример использования SaveFileDialog: &lt;/p&gt;  &lt;blockquote style="background-color:white;"&gt;&lt;code&gt;&lt;font face="Courier New" color="#000000" size="2"&gt;SaveFileDialog dialog = &lt;font color="#0000ff"&gt;new&lt;/font&gt; SaveFileDialog();         &lt;br /&gt;dialog.DefaultExt = &lt;font color="#a31515"&gt;&amp;quot;.txt&amp;quot;&lt;/font&gt;;         &lt;br /&gt;dialog.Filter = &lt;font color="#a31515"&gt;&amp;quot;Text Files|*.txt|Log Files|*.log|All Files|*.*&amp;quot;&lt;/font&gt;;         &lt;br /&gt;dialog.FilterIndex = 2;         &lt;br /&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt;? dialogResult = dialog.ShowDialog();         &lt;br /&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt; (dialogResult == &lt;font color="#0000ff"&gt;true&lt;/font&gt;)         &lt;br /&gt;{         &lt;br /&gt;&amp;#160; &lt;font color="#0000ff"&gt;using&lt;/font&gt; (&lt;font color="#2b91af"&gt;Stream&lt;/font&gt; fs = (&lt;font color="#2b91af"&gt;Stream&lt;/font&gt;)dialog.OpenFile())         &lt;br /&gt;&amp;#160; {         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;using&lt;/font&gt; (StreamWriter sw = &lt;font color="#0000ff"&gt;new&lt;/font&gt; StreamWriter(fs))         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; sw.WriteLine(&lt;font color="#a31515"&gt;&amp;quot;Привет SaveFileDialog!&amp;quot;&lt;/font&gt;);         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; sw.Close();         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; fs.Close();         &lt;br /&gt;&amp;#160; }&amp;#160; &lt;br /&gt;}&amp;#160; &lt;br /&gt;&lt;/font&gt;      &lt;br /&gt;&lt;font color="#808080" size="1"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font color="#808080" size="1"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt;  &lt;h2&gt;&lt;a name="sl12"&gt;Поддержка 3D&lt;/a&gt;&lt;/h2&gt; Попробуйте 3D возможности третьего Сильверлайта на примере приложения:   &lt;div id="silverlightControlHost"&gt;&lt;object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="500px" height="500px"&gt; 		&lt;param name="source" value="http://silverlighter.ru/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.03/SilverlightApplication3D.xap" /&gt; 		&lt;param name="onerror" value="onSilverlightError" /&gt; 		&lt;param name="background" value="white" /&gt; 		&lt;param name="minRuntimeVersion" value="3.0.40307.0" /&gt; 		&lt;param name="autoUpgrade" value="true" /&gt; 		&lt;a href="http://go.microsoft.com/fwlink/?LinkID=141205" style="text-decoration:none;"&gt;  			&lt;img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style:none;" /&gt; 		&lt;/a&gt; 	&lt;/object&gt;&lt;iframe style="border-top-width:0px;border-left-width:0px;visibility:hidden;border-bottom-width:0px;width:0px;height:0px;border-right-width:0px;"&gt;&lt;/iframe&gt;&lt;/div&gt;  &lt;p align="justify"&gt;Одной из самых захватывающих возможностей третьего Сильверлайта являются 3D-проекции. Естественно, учитывая, что плагин Silverlight весит достаточно мало, полноценную поддержку 3D реализовать затруднительно. Поэтому поддерживаются так называемые «Perspective transforms». То есть некоторые трехмерные трансформации, которые могут быть применены к визуальным элементам, скажем, в XAML коде, для имитирования вращения в трёхмерном пространстве. Ещё раз хочу отметить, что это не та трёхмерная графика, о которой мы говорим применительно к DirectX. Не поддерживаются 3D модели, отсечение и другие возможности. Но существующих возможностей вполне достаточно для добавления потрясающих 3D эффектов в Ваши приложения. &lt;/p&gt;  &lt;p align="justify"&gt;В коде за трёхмерные трансформации отвечает элемент PlaneProjection. И давайте посмотрим, как применить трансформацию к визуальному элементу, наследуемому от UIElement. В нашем случае таким элементом будет картинка. &lt;/p&gt;  &lt;p align="justify"&gt;Важно запомнить, что ось X проходит слева направо, ось Y сверху вниз, а ось Z перпендикулярно поверхности. Задавая какое-либо вращение, мы вращаем саму ось на определённое число градусов. К примеру, повернуть картинку на 45 градусов по оси X можно следующим кодом: &lt;/p&gt;  &lt;blockquote style="background-color:white;"&gt;&lt;code&gt;&lt;font face="Courier New" color="#000000" size="2"&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;Image&lt;/font&gt; &lt;font color="#ff0000"&gt;x:Name&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;mainImg&amp;quot;&lt;/font&gt; &lt;font color="#ff0000"&gt;Width&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;400&amp;quot;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#ff0000"&gt;HorizontalAlignment&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;Center&amp;quot;&lt;/font&gt; &lt;font color="#ff0000"&gt;VerticalAlignment&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;Center&amp;quot;&lt;/font&gt;&amp;#160; &lt;br /&gt;&lt;font color="#ff0000"&gt;Source&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;nature.jpg&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&amp;#160; &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;Image.Projection&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;PlaneProjection&lt;/font&gt; &lt;font color="#ff0000"&gt;RotationX&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;45&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;PlaneProjection&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&amp;#160; &lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;Image.Projection&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;Image&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt;       &lt;br /&gt;      &lt;br /&gt;&lt;font color="#808080" size="1"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font color="#808080" size="1"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt; &lt;a href="http://silverlighter.ru/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/digest/img03_5F00_22F55BCE.jpg"&gt;&lt;img title="img03" style="border-top-width:0px;display:inline;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="148" alt="img03" src="http://silverlighter.ru/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/digest/img03_5F00_thumb_5F00_6899E5EC.jpg" width="308" border="0" /&gt;&lt;/a&gt;   &lt;br /&gt;Если мы хотим повернуть картинку по оси Y, то надо задать RotationY:   &lt;blockquote style="background-color:white;"&gt;&lt;code&gt;&lt;font face="Courier New" color="#000000" size="2"&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;Image.Projection&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&amp;#160; &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;PlaneProjection&lt;/font&gt; &lt;font color="#ff0000"&gt;RotationY&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;45&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;PlaneProjection&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;Image.Projection&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;/font&gt;      &lt;br /&gt;&lt;font color="#808080" size="1"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font color="#808080" size="1"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt; &lt;a href="http://silverlighter.ru/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/digest/img04_5F00_194CED98.jpg"&gt;&lt;img title="img04" style="border-top-width:0px;display:inline;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="225" alt="img04" src="http://silverlighter.ru/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/digest/img04_5F00_thumb_5F00_4F6E65E7.jpg" width="184" border="0" /&gt;&lt;/a&gt;   &lt;br /&gt;В случае вращения по оси Z код будет почти идентичен:   &lt;blockquote style="background-color:white;"&gt;&lt;code&gt;&lt;font face="Courier New" color="#000000" size="2"&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;Image.Projection&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&amp;#160; &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;PlaneProjection&lt;/font&gt; &lt;font color="#ff0000"&gt;RotationZ&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;45&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;PlaneProjection&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;Image.Projection&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;/font&gt;      &lt;br /&gt;&lt;font color="#808080" size="1"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font color="#808080" size="1"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt; &lt;a href="http://silverlighter.ru/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/digest/img05_5F00_1C322C7E.jpg"&gt;&lt;img title="img05" style="border-top-width:0px;display:inline;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="290" alt="img05" src="http://silverlighter.ru/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/digest/img05_5F00_thumb_5F00_726EB18A.jpg" width="289" border="0" /&gt;&lt;/a&gt;   &lt;br /&gt;И, конечно же, мы можем комбинировать вращения по осям координат, к примеру,   &lt;blockquote style="background-color:white;"&gt;&lt;code&gt;&lt;font face="Courier New" color="#000000" size="2"&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;Image.Projection&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&amp;#160; &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;PlaneProjection&lt;/font&gt; &lt;font color="#ff0000"&gt;RotationX&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;45&amp;quot;&lt;/font&gt; &lt;font color="#ff0000"&gt;RotationY&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;45&amp;quot;&lt;/font&gt; &lt;font color="#ff0000"&gt;RotationZ&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;10&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;PlaneProjection&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;Image.Projection&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;/font&gt;      &lt;br /&gt;&lt;font color="#808080" size="1"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font color="#808080" size="1"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt; мы можем получить следующий результат:&amp;#160; &lt;br /&gt;  &lt;p align="justify"&gt;&lt;a href="http://silverlighter.ru/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/digest/img06_5F00_510F0BEE.jpg"&gt;&lt;img title="img06" style="border-top-width:0px;display:inline;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="162" alt="img06" src="http://silverlighter.ru/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/digest/img06_5F00_thumb_5F00_56E9AF87.jpg" width="306" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p align="justify"&gt;Вы можете анимировать вращение осей, создавая интересные эффекты. Пример такой анимации приведён ниже. Анимация повторяется бесконечное число раз благодаря свойству RepeatBehavior=&amp;quot;Forever&amp;quot;. А также, повернувшись от 45 до -45 градусов, картинка совершает обратный поворот благодаря свойству анимации AutoReverse=&amp;quot;True&amp;quot;. &lt;/p&gt;  &lt;blockquote style="background-color:white;"&gt;&lt;code&gt;&lt;font face="Courier New" color="#000000" size="2"&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;UserControl&lt;/font&gt; &lt;font color="#ff0000"&gt;x:Class&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;SilverlightApplication5.MainPage&amp;quot;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#ff0000"&gt;xmlns&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&amp;quot;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#ff0000"&gt;xmlns:x&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml&amp;quot;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#ff0000"&gt;MinWidth&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;400&amp;quot;&lt;/font&gt; &lt;font color="#ff0000"&gt;MinHeight&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;300&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;Grid&lt;/font&gt; &lt;font color="#ff0000"&gt;x:Name&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;LayoutRoot&amp;quot;&lt;/font&gt; &lt;font color="#ff0000"&gt;Background&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;White&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;Grid.Resources&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;Storyboard&lt;/font&gt; &lt;font color="#ff0000"&gt;x:Name&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;sbRotateImage&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;DoubleAnimation&lt;/font&gt; &lt;font color="#ff0000"&gt;BeginTime&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;00:00:00&amp;quot;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#ff0000"&gt;Storyboard&lt;/font&gt;.&lt;font color="#ff0000"&gt;TargetName&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;mainImg&amp;quot;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#ff0000"&gt;Storyboard&lt;/font&gt;.&lt;font color="#ff0000"&gt;TargetProperty&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;(UIElement.Projection).(RotationX)&amp;quot;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#ff0000"&gt;RepeatBehavior&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;Forever&amp;quot;&lt;/font&gt; &lt;font color="#ff0000"&gt;AutoReverse&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;True&amp;quot;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#ff0000"&gt;From&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;45&amp;quot;&lt;/font&gt; &lt;font color="#ff0000"&gt;To&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;-45&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;DoubleAnimation&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;Storyboard&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;Grid.Resources&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;Image&lt;/font&gt; &lt;font color="#ff0000"&gt;x:Name&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;mainImg&amp;quot;&lt;/font&gt; &lt;font color="#ff0000"&gt;Width&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;400&amp;quot;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#ff0000"&gt;HorizontalAlignment&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;Center&amp;quot;&lt;/font&gt; &lt;font color="#ff0000"&gt;VerticalAlignment&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;Center&amp;quot;&lt;/font&gt;&amp;#160; &lt;br /&gt;&lt;font color="#ff0000"&gt;Source&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;nature.jpg&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;Image.Projection&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;PlaneProjection&lt;/font&gt; &lt;font color="#ff0000"&gt;RotationX&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;45&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;PlaneProjection&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;Image.Projection&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;Image&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;Grid&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;UserControl&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;/font&gt;      &lt;br /&gt;&lt;font color="#808080" size="1"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font color="#808080" size="1"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt;  &lt;p align="justify"&gt;Кроме того требуется запустить анимацию. Давайте сделаем это в C# коде конструктора страницы, добавив строку sbRotateImage.Begin();. &lt;/p&gt;  &lt;blockquote style="background-color:white;"&gt;&lt;code&gt;&lt;font face="Courier New" color="#000000" size="2"&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt; MainPage()         &lt;br /&gt;{         &lt;br /&gt;&amp;#160; InitializeComponent();         &lt;br /&gt;&amp;#160; sbRotateImage.Begin();&amp;#160; &lt;br /&gt;}         &lt;br /&gt;&lt;/font&gt;      &lt;br /&gt;&lt;font color="#808080" size="1"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font color="#808080" size="1"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt;  &lt;p align="justify"&gt;Запустите приложение, и наслаждайтесь красивой трёхмерной анимацией. &lt;/p&gt;  &lt;div id="Div1"&gt;&lt;object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="450" height="320px"&gt; 		&lt;param name="source" value="http://silverlighter.ru/cfs-file.ashx/__key/CommunityServer.Components.UserFiles/00.00.00.21.03/SilverlightApplication3D2.xap" /&gt; 		&lt;param name="onerror" value="onSilverlightError" /&gt; 		&lt;param name="background" value="white" /&gt; 		&lt;param name="minRuntimeVersion" value="3.0.40307.0" /&gt; 		&lt;param name="autoUpgrade" value="true" /&gt; 		&lt;a href="http://go.microsoft.com/fwlink/?LinkID=141205" style="text-decoration:none;"&gt;  			&lt;img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style:none;" /&gt; 		&lt;/a&gt; 	&lt;/object&gt;&lt;iframe style="border-top-width:0px;border-left-width:0px;visibility:hidden;border-bottom-width:0px;width:0px;height:0px;border-right-width:0px;"&gt;&lt;/iframe&gt;&lt;/div&gt;  &lt;p align="justify"&gt;У PlaneProjection есть ещё некоторые параметры. Например, параметры, позволяющие задать точку, вокруг которой происходит вращение: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;CenterOfRotationX &lt;/li&gt;    &lt;li&gt;CenterOfRotationY &lt;/li&gt;    &lt;li&gt;CenterOfRotationZ &lt;/li&gt; &lt;/ul&gt;  &lt;p align="justify"&gt;Значения первых двух параметров задаются от 0 до 1 и привязаны к длине и ширине графического элемента. Последний параметр имеет абсолютную размерность. Значением по умолчанию для CenterOfRotationX и CenterOfRotationY является 0.5, а для CenterOfRotationZ – 0. &lt;/p&gt; Также можно задать локальное или глобальное смещение:   &lt;ul&gt;   &lt;li&gt;LocalOffsetX &lt;/li&gt;    &lt;li&gt;LocalOffsetY &lt;/li&gt;    &lt;li&gt;LocalOffsetZ &lt;/li&gt;    &lt;li&gt;GlobalOffsetX &lt;/li&gt;    &lt;li&gt;GlobalOffsetY &lt;/li&gt;    &lt;li&gt;GlobalOffsetZ &lt;/li&gt; &lt;/ul&gt;  &lt;p align="justify"&gt;Смещения позволяют изменить положение графического элемента в трёхмерном пространстве. Например, один объект можно разместить на определенном удалении от другого. Отличаются смещения тем, что локальное смещение задаётся относительно контейнера, содержащего элемент, а глобальное относительно всего Silverlight приложения. &lt;/p&gt;  &lt;h2&gt;&lt;a name="sl13"&gt;Поддержка работы Silverlight приложений вне браузера (внебраузерные, Offline Silverlight приложения)&lt;/a&gt;&lt;/h2&gt;  &lt;p align="justify"&gt;Silverlight 3 приложения теперь можно устанавливать на локальный компьютер (если того захочет разработчик и пользователь, конечно). Они будут работать в своём окне, как и традиционные Windows приложения. Хранятся такие приложения физически на машине у пользователя. Для них можно автоматически создавать ярлык в меню «Пуск» и на рабочем столе. Они безопасны, так как работают в изолированной «песочнице», как и любые другие Silverlight приложения. Внебраузерные приложения поддерживают прозрачное автообновление, так что Вам не придётся заботиться об этом. Кроме того поддерживается интеграция с Windows 7. Но при этом такие приложения отлично работают и на MacOS X. Ещё одной важной особенностью является то, что Silverlight приложения теперь могут определять наличие соединения с интернетом и изменять своё поведение в зависимости от того, есть доступ к серверу или нет. &lt;/p&gt;  &lt;p align="justify"&gt;Для того чтобы Ваше Silverlight приложение смогло работать вне браузера, требуется совершить несколько простых действий. &lt;/p&gt; Откройте в проекте файл Properties-&amp;gt;AppManifest.xml и раскомментируйте следующие строки:   &lt;blockquote style="background-color:white;"&gt;&lt;code&gt;&lt;font face="Courier New" color="#000000" size="2"&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;Deployment.ApplicationIdentity&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&amp;#160;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;ApplicationIdentity&lt;/font&gt;         &lt;br /&gt;&amp;#160;&amp;#160; &lt;font color="#ff0000"&gt;ShortName&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;Out of Browser Silverlight Application&amp;quot;&lt;/font&gt;         &lt;br /&gt;&amp;#160;&amp;#160; &lt;font color="#ff0000"&gt;Title&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;Window Title of Your Silverlight Application&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&amp;#160; &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;ApplicationIdentity.Blurb&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;Description of your Silverlight application&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;ApplicationIdentity.Blurb&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&amp;#160;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;ApplicationIdentity&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;Deployment.ApplicationIdentity&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;/font&gt;      &lt;br /&gt;&lt;font color="#808080" size="1"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font color="#808080" size="1"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt; Свойства тэга ApplicationIdentity означают следующее:   &lt;ul&gt;   &lt;li&gt;&lt;b&gt;ShortName&lt;/b&gt; – Имя приложения, отображаемое в названии ярлыка на рабочем столе и в меню «Пуск». Также данное имя отображается в контекстом меню, отображаемом при нажатии правой кнопкой мыши на Silverlight приложении как часть сообщения, предлагающего произвести установку. &lt;/li&gt;    &lt;li&gt;&lt;b&gt;Title&lt;/b&gt; – заголовок окна Silverlight приложения, когда оно работает вне браузера. &lt;/li&gt;    &lt;li&gt;&lt;b&gt;Blurb&lt;/b&gt; – данный текст отображается в секции «Comment» в свойствах ярлыка приложения. &lt;/li&gt; &lt;/ul&gt;  &lt;p align="justify"&gt;Далее, когда Вы запустите Silverlight приложение, щёлкните по нему правой кнопкой мыши и в контекстом меню выберите «Install XXX onto this computer…», где XXX – ShortName Вашего приложения. &lt;/p&gt;  &lt;p align="justify"&gt;&lt;a href="http://silverlighter.ru/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/digest/img07_5F00_75C02365.jpg"&gt;&lt;img title="img07" style="border-top-width:0px;display:inline;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="65" alt="img07" src="http://silverlighter.ru/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/digest/img07_5F00_thumb_5F00_46FA6AC3.jpg" width="399" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p align="justify"&gt;Обратите внимание, что если в файле AppManifest.xml не прописана нужная конфигурация, опция «Install XXX onto this computer…» будет недоступна. После нажатия на данный пункт меню появляется диалоговое окно. &lt;/p&gt;  &lt;p align="justify"&gt;&lt;a href="http://silverlighter.ru/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/digest/img08_5F00_0D0B27D7.jpg"&gt;&lt;img title="img08" style="border-top-width:0px;display:inline;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="123" alt="img08" src="http://silverlighter.ru/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/digest/img08_5F00_thumb_5F00_4BFCA872.jpg" width="283" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p align="justify"&gt;Вы можете выбрать, куда разместить ярлык приложения, и после нажатия кнопки «OK» приложение установится на компьютер пользователя и запустится. &lt;/p&gt;  &lt;p align="justify"&gt;&lt;a href="http://silverlighter.ru/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/digest/img09_5F00_44050610.jpg"&gt;&lt;img title="img09" style="border-top-width:0px;display:inline;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="254" alt="img09" src="http://silverlighter.ru/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/digest/img09_5F00_thumb_5F00_497376B4.jpg" width="336" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p align="justify"&gt;Вы можете удалить приложение, щёлкнув по нему во время работы и выбрав в контекстом меню пункт «Remove this application…» &lt;/p&gt;  &lt;p align="justify"&gt;&lt;a href="http://silverlighter.ru/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/digest/img10_5F00_6EFCF415.jpg"&gt;&lt;img title="img10" style="border-top-width:0px;display:inline;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="50" alt="img10" src="http://silverlighter.ru/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/digest/img10_5F00_thumb_5F00_794E1875.jpg" width="226" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p align="justify"&gt;Если Вы хотите программно определить работает приложение в браузере или вне его, используйте свойство RunningOffline объекта приложения: &lt;/p&gt;  &lt;blockquote style="background-color:white;"&gt;&lt;code&gt;&lt;font face="Courier New" color="#000000" size="2"&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt; (App.Current.RunningOffline)         &lt;br /&gt;{         &lt;br /&gt;&amp;#160; &lt;font color="#008000"&gt;///Приложение работает вне браузера!&lt;/font&gt;         &lt;br /&gt;}         &lt;br /&gt;&lt;/font&gt;      &lt;br /&gt;&lt;font color="#808080" size="1"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font color="#808080" size="1"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt;  &lt;p align="justify"&gt;Кроме того, Вы можете задать для приложения свою иконку. Правда, требуются иконки разных размеров. Эти иконки будут отображаться при установке, в заголовке окна приложения, а также ярлык приложения будет иметь соответствующий вид. Для задания иконок, добавьте четыре .png файла в проект, и установите для них «Build Action» в значение «Content». Кроме того в секции ApplicationIdentity файла AppManifest.xml пропишите слудующий код: &lt;/p&gt;  &lt;blockquote style="background-color:white;"&gt;&lt;code&gt;&lt;font face="Courier New" color="#000000" size="2"&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;ApplicationIdentity.Icons&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&amp;#160;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;Icon&lt;/font&gt; &lt;font color="#ff0000"&gt;Size&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;16x16&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;images/icon16.png&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;Icon&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&amp;#160;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;Icon&lt;/font&gt; &lt;font color="#ff0000"&gt;Size&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;32x32&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;images/icon32.png&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;Icon&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&amp;#160;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;Icon&lt;/font&gt; &lt;font color="#ff0000"&gt;Size&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;64x64&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;images/icon64.png&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;Icon&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&amp;#160;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;Icon&lt;/font&gt; &lt;font color="#ff0000"&gt;Size&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;128x128&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;images/icon128.png&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;Icon&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;ApplicationIdentity.Icons&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;/font&gt;      &lt;br /&gt;&lt;font color="#808080" size="1"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font color="#808080" size="1"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt; Полностью секция будет выглядеть так:   &lt;blockquote style="background-color:white;"&gt;&lt;code&gt;&lt;font face="Courier New" color="#000000" size="2"&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;Deployment.ApplicationIdentity&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&amp;#160;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;ApplicationIdentity&lt;/font&gt;         &lt;br /&gt;&amp;#160;&amp;#160; &lt;font color="#ff0000"&gt;ShortName&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;Out of Browser Silverlight Application&amp;quot;&lt;/font&gt;         &lt;br /&gt;&amp;#160;&amp;#160; &lt;font color="#ff0000"&gt;Title&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;Window Title of Your Silverlight Application&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&amp;#160; &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;ApplicationIdentity.Blurb&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;Description of your Silverlight application&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;ApplicationIdentity.Blurb&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&amp;#160; &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;ApplicationIdentity.Icons&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;Icon&lt;/font&gt; &lt;font color="#ff0000"&gt;Size&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;16x16&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;images/icon16.png&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;Icon&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;Icon&lt;/font&gt; &lt;font color="#ff0000"&gt;Size&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;32x32&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;images/icon32.png&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;Icon&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;Icon&lt;/font&gt; &lt;font color="#ff0000"&gt;Size&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;64x64&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;images/icon64.png&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;Icon&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;Icon&lt;/font&gt; &lt;font color="#ff0000"&gt;Size&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;128x128&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;images/icon128.png&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;Icon&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&amp;#160; &lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;ApplicationIdentity.Icons&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&amp;#160;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;ApplicationIdentity&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;Deployment.ApplicationIdentity&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;/font&gt;      &lt;br /&gt;&lt;font color="#808080" size="1"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font color="#808080" size="1"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt;  &lt;p align="justify"&gt;Всё, теперь у Вашего приложения будут свои собственные иконки. Повторите инсталляцию приложения, чтобы посмотреть где и как они отображаются. &lt;/p&gt;  &lt;p align="justify"&gt;И ещё хотелось бы пару слов сказать о том, как работают внебраузерные Silverlight приложения. После установки третьей версии Сильверлайта, в каталоге установки (C:\Program Files\Microsoft Silverlight\3.0.40307.0) Вы сможете найти приложение sllauncher.exe, которое занимается обеспечением работы Silverlight приложений вне браузера. Посмотрев на свойства ярлыка внебраузерного Silverlight приложения мы увидим, что на самом деле как раз и запускается sllauncher.exe, которому передаётся идентификатор нужного приложения. А само приложение хранится в подпапке директории C:\Users\#YourName#\AppData\LocalLow\Microsoft\Silverlight\Offline. Там для каждого приложения есть своя подпапка, название которой и является идентификатором приложения. Внутри можно найти .xap файл, иконку и некоторые другие файлы. &lt;/p&gt;  &lt;h3&gt;&lt;a name="sl14"&gt;Детектирование наличия/отсутствия сетевого соединения&lt;/a&gt;&lt;/h3&gt;  &lt;p align="justify"&gt;Если Вы разрабатываете внебраузерное Silverlight приложение, Вам бы, наверное, хотелось знать доступно ли в данный момент сетевое подключение или нет. Такая информация полезна и для обычных приложений, работающих в браузере. &lt;/p&gt;  &lt;p align="justify"&gt;Silverlight 3, кроме того, что Вы можете определить есть ли соединение с интернетом или нет, можно детектировать момент, когда соединение появляется или исчезает. Итак, давайте посмотрим на код, проверяющий наличие соединения: &lt;/p&gt;  &lt;blockquote style="background-color:white;"&gt;&lt;code&gt;&lt;font face="Courier New" color="#000000" size="2"&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt; (NetworkInterface.GetIsNetworkAvailable())         &lt;br /&gt;{         &lt;br /&gt;&amp;#160; &lt;font color="#008000"&gt;//Сделать что-то, требующее наличия соединения&lt;/font&gt;         &lt;br /&gt;}         &lt;br /&gt;&lt;/font&gt;      &lt;br /&gt;&lt;font color="#808080" size="1"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font color="#808080" size="1"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt;  &lt;p align="justify"&gt;Он говорит сам за себя. А для определения момента, когда сетевое подключение появляется или исчезает, подпишитесь на событие NetworkChange.NetworkAddressChanged: &lt;/p&gt;  &lt;blockquote style="background-color:white;"&gt;&lt;code&gt;&lt;font face="Courier New" color="#000000" size="2"&gt;NetworkChange.NetworkAddressChanged += &lt;font color="#0000ff"&gt;new&lt;/font&gt; NetworkAddressChangedEventHandler(NetworkChange_NetworkAddressChanged);&amp;#160; &lt;/font&gt;      &lt;br /&gt;      &lt;br /&gt;&lt;font color="#808080" size="1"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font color="#808080" size="1"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt;  &lt;p align="justify"&gt;В обработчике события используйте уже знакомый код: &lt;/p&gt;  &lt;blockquote style="background-color:white;"&gt;&lt;code&gt;&lt;font face="Courier New" color="#000000" size="2"&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt; NetworkChange_NetworkAddressChanged(&lt;font color="#0000ff"&gt;object&lt;/font&gt; sender, &lt;font color="#2b91af"&gt;EventArgs&lt;/font&gt; e)         &lt;br /&gt;{         &lt;br /&gt;&amp;#160; &lt;font color="#0000ff"&gt;if&lt;/font&gt; (NetworkInterface.GetIsNetworkAvailable())         &lt;br /&gt;&amp;#160; {         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#008000"&gt;//Сделать что-то, требующее наличия соединения&lt;/font&gt;         &lt;br /&gt;&amp;#160; }         &lt;br /&gt;}         &lt;br /&gt;&lt;/font&gt;      &lt;br /&gt;&lt;font color="#808080" size="1"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font color="#808080" size="1"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt;  &lt;p align="justify"&gt;Таким образом, Вы сможете, отловив момент, когда состояние сетевого соединения меняется, проверить его наличие и выполнить какие-либо действия. &lt;/p&gt;  &lt;h3&gt;&lt;a name="sl15"&gt;Navigation Framework&lt;/a&gt;&lt;/h3&gt;  &lt;p align="justify"&gt;Выше уже вскользь упоминался Navigation Framework. Теперь пришло время рассмотреть его подробнее на конкретном примере. &lt;/p&gt;  &lt;p align="justify"&gt;Давайте в Visual Studio создадим новый проект, выбрав File-&amp;gt;New Project…-&amp;gt;Silverlight-&amp;gt;Silverlight Navigation Application. То есть мы будем использовать шаблон проекта «Silverlight Navigation Application». В принципе это не обязательно и Вы можете использовать стандартный шаблон для Silverlight проектов, или добавить поддержку навигации в существующее приложение. Используя же специализированный шаблон просто немного легче начать. &lt;/p&gt;  &lt;p align="justify"&gt;Введите имя для нового проекта и нажмите «OK». Выбранный шаблон содержит базовое приложение с некоторым графическим интерфейсом. Обратите внимание, что страницы приложения содержатся в папке «Views», а MainPage.xaml является контейнером (мастер страницей). &lt;/p&gt;  &lt;p align="justify"&gt;&lt;a href="http://silverlighter.ru/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/digest/img11_5F00_545057FC.jpg"&gt;&lt;img title="img11" style="border-top-width:0px;display:inline;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="201" alt="img11" src="http://silverlighter.ru/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/digest/img11_5F00_thumb_5F00_31AC1981.jpg" width="240" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p align="justify"&gt;Вы уже сейчас можете запустить приложение и попробовать перейти на страницу «About», посмотреть на изменения в адресной строке браузера, которые при этом происходят, и воспользоваться кнопкой «Назад». Вся эта функциональность доступна по умолчанию. &lt;/p&gt;  &lt;p align="justify"&gt;&lt;a href="http://silverlighter.ru/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/digest/img12_5F00_59FB4BD5.jpg"&gt;&lt;img title="img12" style="border-top-width:0px;display:inline;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="225" alt="img12" src="http://silverlighter.ru/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/digest/img12_5F00_thumb_5F00_7316A60D.jpg" width="463" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p align="justify"&gt;Если мы заглянем в код страницы MainPage.xaml, то увидим, в том числе и такие строки: &lt;/p&gt;  &lt;blockquote style="background-color:white;"&gt;&lt;code&gt;&lt;font face="Courier New" color="#000000" size="2"&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;navigation:Frame&lt;/font&gt; &lt;font color="#ff0000"&gt;x:Name&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;Frame&amp;quot;&lt;/font&gt; &lt;font color="#ff0000"&gt;Source&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;/Views/HomePage.xaml&amp;quot;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#ff0000"&gt;HorizontalContentAlignment&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;Stretch&amp;quot;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#ff0000"&gt;VerticalContentAlignment&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;Stretch&amp;quot;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#ff0000"&gt;Padding&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;15,10,15,10&amp;quot;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#ff0000"&gt;Background&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;White&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;/&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;/font&gt;      &lt;br /&gt;&lt;font color="#808080" size="1"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font color="#808080" size="1"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt;  &lt;p align="justify"&gt;Здесь используется элемент управления Frame. В этот фрейм загружаются различные страницы. Если провести аналогию с ASP.NET, то Frame в чём-то похож на ContentPlaceHolder (хотя Frame обладает более богатыми возможностями). Давайте посмотрим на наиболее важные свойства и методы фрейма: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;Source&lt;/b&gt; – это свойство задаёт Uri страницы, которая будет открыта при загрузке фрейма. &lt;/li&gt;    &lt;li&gt;&lt;b&gt;JournalOwnership&lt;/b&gt; – данное свойство определяет, сохранять ли историю в журнале браузера или фрейм будет использовать собственный журнал для этих целей. &lt;/li&gt;    &lt;li&gt;&lt;b&gt;Frame.Navigate (Uri uri)&lt;/b&gt; – данный метод позволяет загрузить во фрейме страницу, адрес которой передаётся ему параметром. Не забывайте указывать в начале адреса слеш &amp;quot;/&amp;quot;. Давайте посмотрим на пример использования данного метода:       &lt;br /&gt;Frame.Navigate(new Uri( &amp;quot;/Views/Home.xaml&amp;quot;, UriKind.Relative ) ); &lt;/li&gt; &lt;/ul&gt;  &lt;p align="justify"&gt;Также у фрейма есть много полезных событий, на которые можно подписаться, например Navigating, Navigated, NavigationFailed и NavigationStopped. &lt;/p&gt;  &lt;p align="justify"&gt;Теперь взглянем на код страницы HomePage.xaml: &lt;/p&gt;  &lt;blockquote style="background-color:white;"&gt;&lt;code&gt;&lt;font face="Courier New" color="#000000" size="2"&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;navigation:Page&lt;/font&gt; &lt;font color="#ff0000"&gt;x:Class&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;SilverlightApplication6.HomePage&amp;quot;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#ff0000"&gt;xmlns&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&amp;quot;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#ff0000"&gt;xmlns:x&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml&amp;quot;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#ff0000"&gt;xmlns:navigation&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation&amp;quot;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#ff0000"&gt;Title&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;Моё Супер приложение&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;Grid&lt;/font&gt; &lt;font color="#ff0000"&gt;x:Name&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;LayoutRoot&amp;quot;&lt;/font&gt; &lt;font color="#ff0000"&gt;Background&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;White&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;StackPanel&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;TextBlock&lt;/font&gt; &lt;font color="#ff0000"&gt;Text&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;Home&amp;quot;&lt;/font&gt; &lt;font color="#ff0000"&gt;Style&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;{StaticResource HeaderTextStyle}&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;/&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;StackPanel&lt;/font&gt; &lt;font color="#ff0000"&gt;Style&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;{StaticResource ContentTextPanelStyle}&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;TextBlock&lt;/font&gt; &lt;font color="#ff0000"&gt;Text&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;To learn more about Silverlight visit &amp;quot;&lt;/font&gt; &lt;font color="#ff0000"&gt;Style&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;{StaticResource ContentTextStyle}&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;/&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;HyperlinkButton&lt;/font&gt; &lt;font color="#ff0000"&gt;Content&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;http://www.silverlight.net&amp;quot;&lt;/font&gt; &lt;font color="#ff0000"&gt;NavigateUri&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;http://www.silverlight.net&amp;quot;&lt;/font&gt; &lt;font color="#ff0000"&gt;Style&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;{StaticResource HyperlinkButtonStyle}&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;/&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;StackPanel&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;StackPanel&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;Grid&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;navigation:Page&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;/font&gt;      &lt;br /&gt;&lt;font color="#808080" size="1"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font color="#808080" size="1"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt;  &lt;p align="justify"&gt;Вы видите, что здесь используется элемент управления Page. Обратите внимание на свойство «Title». С его помощью можно задать текст, который будет находиться, в заголовке окна браузера при отображении конкретной страницы. В данном случае я задал Title=&amp;quot;Моё Супер приложение&amp;quot;: &lt;/p&gt;  &lt;p align="justify"&gt;&lt;a href="http://silverlighter.ru/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/digest/img13_5F00_1B65D862.jpg"&gt;&lt;img title="img13" style="border-top-width:0px;display:inline;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="111" alt="img13" src="http://silverlighter.ru/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/digest/img13_5F00_thumb_5F00_0693DFE2.jpg" width="470" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p align="justify"&gt;По умолчанию фрейм интегрируется с журналом браузера. Когда происходит переход между страницами, информация об этом сохраняется в журнале. Кроме того, Вы можете использовать и кнопки «Вперёд/Назад»: &lt;/p&gt;  &lt;p align="justify"&gt;&lt;a href="http://silverlighter.ru/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/digest/img14_5F00_5CD064EE.jpg"&gt;&lt;img title="img14" style="border-top-width:0px;display:inline;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="260" alt="img14" src="http://silverlighter.ru/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/digest/img14_5F00_thumb_5F00_47FE6C6E.jpg" width="281" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p align="justify"&gt;Однако, как я уже говорил, у фрейма есть свойство JournalOwnership, которое может принимать следующие значения: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;Automatic&lt;/b&gt; – если браузер позволяет, история сохраняется в его журнал, если нет, она сохраняется только в журнал фрейма. &lt;/li&gt;    &lt;li&gt;&lt;b&gt;OwnsJournal&lt;/b&gt; – история сохраняется только в журнал фрейма. &lt;/li&gt;    &lt;li&gt;&lt;b&gt;UsesParentJournal&lt;/b&gt; – фрейм будет использовать журнал и настройки фрейма, в котором находится сам (родительского фрейма). Если родительского фрейма нет, используется режим «Automatic». &lt;/li&gt; &lt;/ul&gt;  &lt;p align="justify"&gt;Используйте перечисленные выше свойства для управления режимом работы журнала, в том случае, если Вы не хотите интегрироваться с историей браузера, а хотите реализовать собственную логику навигации. &lt;/p&gt;  &lt;p align="justify"&gt;Есть одна небольшая проблема. Из кода дочерней страницы мы не имеем прямого доступа к объекту фрейма на главной странице. Но на помощь нам приходит NavigationService. Благодаря которому, мы можем производить навигацию, то есть изменять страницу, загруженную во фрейм из кода любой внутренней страницы. &lt;/p&gt;  &lt;p align="justify"&gt;Сделать это можно примерно так: &lt;/p&gt;  &lt;blockquote style="background-color:white;"&gt;&lt;code&gt;&lt;font face="Courier New" color="#000000" size="2"&gt;&lt;font color="#0000ff"&gt;this&lt;/font&gt;.NavigationService.Navigate(&lt;font color="#0000ff"&gt;new&lt;/font&gt; &lt;font color="#2b91af"&gt;Uri&lt;/font&gt;( &lt;font color="#2b91af"&gt;String&lt;/font&gt;.Format( &lt;font color="#a31515"&gt;&amp;quot;/Views/NextPage.xaml?title={0}&amp;amp;param={1}&amp;quot;&lt;/font&gt;, ...), UriKind.Relative ) );         &lt;br /&gt;&lt;/font&gt;      &lt;br /&gt;&lt;font color="#808080" size="1"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font color="#808080" size="1"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt;  &lt;p align="justify"&gt;Обратите внимание, что поддерживается передача параметров прямо в строке адреса. Получить переданные таким образом параметры позволяет свойство NavigationContext. &lt;/p&gt;  &lt;blockquote style="background-color:white;"&gt;&lt;code&gt;&lt;font face="Courier New" color="#000000" size="2"&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt; (&lt;font color="#0000ff"&gt;this&lt;/font&gt;.NavigationContext.QueryString.ContainsKey(&lt;font color="#a31515"&gt;&amp;quot;param&amp;quot;&lt;/font&gt;)         &lt;br /&gt;&amp;amp;&amp;amp; &lt;font color="#0000ff"&gt;this&lt;/font&gt;.NavigationContext.QueryString.ContainsKey(&lt;font color="#a31515"&gt;&amp;quot;title&amp;quot;&lt;/font&gt;))         &lt;br /&gt;{         &lt;br /&gt;&amp;#160; &lt;font color="#0000ff"&gt;string&lt;/font&gt; title = &lt;font color="#0000ff"&gt;this&lt;/font&gt;.NavigationContext.QueryString[&lt;font color="#a31515"&gt;&amp;quot;title&amp;quot;&lt;/font&gt;];         &lt;br /&gt;&amp;#160; &lt;font color="#0000ff"&gt;string&lt;/font&gt; param = &lt;font color="#0000ff"&gt;this&lt;/font&gt;.NavigationContext.QueryString[&lt;font color="#a31515"&gt;&amp;quot;param&amp;quot;&lt;/font&gt;];         &lt;br /&gt;}         &lt;br /&gt;&lt;/font&gt;      &lt;br /&gt;&lt;font color="#808080" size="1"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font color="#808080" size="1"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt;  &lt;p align="justify"&gt;Как я уже говорил, когда происходит навигация внутри Silverlight приложения, адрес в адресной строке браузера также меняется. Если Вы копируете такой адрес и вставите в адресную строку в новом окне браузера, Silverlight приложение загрузится на нужной странице. Доступ к строке запроса из приложения можно получить, используя объект NavigationContext. &lt;/p&gt;  &lt;h2&gt;Заключение&lt;/h2&gt;  &lt;p align="justify"&gt;Мы рассмотрели некоторые возможности третьего Сильверлайта. Надеюсь, они понравятся Вам также, как нравятся мне. О других возможностях мы расскажем в следующих выпусках. &lt;/p&gt;  &lt;h1&gt;&amp;#160;&lt;/h1&gt;  &lt;h1&gt;&lt;a name="sl2"&gt;Трюки и советы&lt;/a&gt;&lt;/h1&gt;  &lt;h2&gt;&lt;a name="sl21"&gt;Layout transform в Silverlight&lt;/a&gt;&lt;/h2&gt;  &lt;p align="justify"&gt;В WPF у элементов интерфейса есть замечательное свойство – LayoutTransform, которое позволяет применить трансформацию к содержимому этих элементов. При этом размеры родительского элемента остаются прежними, а трансформированное содержимое масштабируется так, чтобы поместиться в отведенное ему место. &lt;/p&gt;  &lt;p align="justify"&gt;LayoutTransform необходима, если вы, например, хотите повернуть текст внутри кнопки вертикально: &lt;/p&gt;  &lt;p align="justify"&gt;&lt;a href="http://silverlighter.ru/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/digest/img15_5F00_510AF7EF.jpg"&gt;&lt;img title="img15" style="border-top-width:0px;display:inline;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="121" alt="img15" src="http://silverlighter.ru/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/digest/img15_5F00_thumb_5F00_68C22F55.jpg" width="220" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p align="justify"&gt;Однако, в силу того, что сильверлайт не имеет этого свойства, придется использовать RenderTransform, и в итоге получится следующее: &lt;/p&gt;  &lt;h3&gt;&lt;a href="http://silverlighter.ru/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/digest/img16_5F00_3585F5EC.jpg"&gt;&lt;img title="img16" style="border-top-width:0px;display:inline;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="147" alt="img16" src="http://silverlighter.ru/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/digest/img16_5F00_thumb_5F00_1B458CC8.jpg" width="235" border="0" /&gt;&lt;/a&gt; &lt;/h3&gt;  &lt;h3&gt;Что же делать&lt;/h3&gt;  &lt;p align="justify"&gt;Безусловно, добиться нужного эффекта можно и имеющимися средствами – рассчитать отступы и применить TranslateTransform, но это лишние затраты времени. Представьте, что вам нужно применить группу трансформаций к содержимому нескольких элементов интерфейса (да-да, такое бывает нужно), тогда для каждого придется проводить хитрые математические расчеты для правильного отображения. Думаю, те кто применял LayoutTransform в WPF, будут разочарованы предстоящим объемом работы, ведь там это делается одной строчкой кода. &lt;/p&gt;  &lt;p align="justify"&gt;Пока разработчики думают включать ли LayoutTransform в следующие версии сильверлайта, в блоге &lt;a href="http://blogs.msdn.com/delay/default.aspx"&gt;Delay&amp;#39;s Blog&lt;/a&gt; уже появилось решение этой проблемы. Автор блога David Anson написал замечательный контрол LayoutTransformControl, который позволяет оборачивать нужное содержимое и применять к нему трансформации так, как будто используется «настоящая» LayoutTransform. &lt;/p&gt;  &lt;h3&gt;Использование&lt;/h3&gt;  &lt;p align="justify"&gt;Для начала необходимо добавить пространство имен к любому родительскому элементу по отношению к контролу LayoutTransformControl, например, к UserControl: &lt;/p&gt;  &lt;blockquote style="background-color:white;"&gt;&lt;code&gt;&lt;font face="Courier New" color="#000000" size="2"&gt;xmlns:local=&amp;quot;clr-namespace:LayoutTransformControlSample;assembly=ИмяПодключенойСборки&amp;quot;&lt;/font&gt;       &lt;br /&gt;      &lt;br /&gt;&lt;font color="#808080" size="1"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font color="#808080" size="1"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt;  &lt;p align="justify"&gt;Далее оборачиваем нужное содержимое в теги &lt;/p&gt;  &lt;blockquote style="background-color:white;"&gt;&lt;code&gt;&lt;font face="Courier New" color="#000000" size="2"&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;local:LayoutTransformControl.Transform&lt;/font&gt; &lt;font color="#0000ff"&gt;/&amp;gt;&lt;/font&gt; &lt;/font&gt;      &lt;br /&gt;      &lt;br /&gt;&lt;font color="#808080" size="1"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font color="#808080" size="1"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt;  &lt;p align="justify"&gt;Теперь можно применять любую доступную трансформацию через свойство LayoutTransformControl.Transform : &lt;/p&gt;  &lt;blockquote style="background-color:white;"&gt;&lt;code&gt;&lt;font face="Courier New" color="#000000" size="2"&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;local:LayoutTransformControl.Transform&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&amp;#160; &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;TransformGroup&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;RotateTransform&lt;/font&gt; &lt;font color="#ff0000"&gt;Angle&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;-90&amp;quot;&lt;/font&gt; &lt;font color="#0000ff"&gt;/&amp;gt;&lt;/font&gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;SkewTransform&lt;/font&gt; &lt;font color="#ff0000"&gt;AngleX&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;10&amp;quot;&lt;/font&gt; &lt;font color="#ff0000"&gt;AngleY&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;4&amp;quot;&lt;/font&gt; &lt;font color="#0000ff"&gt;/&amp;gt;&lt;/font&gt;         &lt;br /&gt;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;TransformGroup&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;local:LayoutTransformControl.Transform&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;/font&gt;      &lt;br /&gt;&lt;font color="#808080" size="1"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font color="#808080" size="1"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt;  &lt;p align="justify"&gt;Вот все, что нужно написать для примера с кнопкой: &lt;/p&gt;  &lt;blockquote style="background-color:white;"&gt;&lt;code&gt;&lt;font face="Courier New" color="#000000" size="2"&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;Button&lt;/font&gt; &lt;font color="#ff0000"&gt;Width&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;200&amp;quot;&lt;/font&gt; &lt;font color="#ff0000"&gt;Height&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;100&amp;quot;&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;local:LayoutTransformControl&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;local:LayoutTransformControl.Transform&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;RotateTransform&lt;/font&gt; &lt;font color="#ff0000"&gt;Angle&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;-90&amp;quot;&lt;/font&gt; &lt;font color="#0000ff"&gt;/&amp;gt;&lt;/font&gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;local:LayoutTransformControl.Transform&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#800000"&gt;TextBlock&lt;/font&gt; &lt;font color="#ff0000"&gt;Text&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;Кликни меня&amp;quot;&lt;/font&gt; &lt;font color="#0000ff"&gt;/&amp;gt;&lt;/font&gt;         &lt;br /&gt;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;local:LayoutTransformControl&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#800000"&gt;Button&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;         &lt;br /&gt;&lt;/font&gt;      &lt;br /&gt;&lt;font color="#808080" size="1"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font color="#808080" size="1"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt;  &lt;h3&gt;Где достать&lt;/h3&gt;  &lt;p align="justify"&gt;Скачать этот контрол можно отсюда – &lt;a href="http://blogs.msdn.com/delay/attachment/8555232.ashx"&gt;LayoutTransformControl.zip&lt;/a&gt;. Одна из статей, посвященных ему - &lt;a href="http://blogs.msdn.com/delay/archive/2008/05/27/lying-to-the-layout-system-for-a-good-cause-bringing-layouttransform-to-silverlight-2.aspx"&gt;Lying to the layout system for a good cause [Bringing LayoutTransform to Silverlight 2!]&lt;/a&gt;. В архиве помимо исходников находятся наглядные примеры использования этого элемента и сравнения с RenderTransform. &lt;/p&gt;  &lt;h2&gt;&amp;#160;&lt;/h2&gt;  &lt;h2&gt;Замена класса App в Silverlight приложении&lt;/h2&gt;  &lt;p align="justify"&gt;Как известно, по умолчанию стартовым классом всех Silverlight приложений является App, часть описания которого можно найти в файле App.xaml.cs. Изменить стандартное поведение можно очень просто: &lt;/p&gt;  &lt;p align="justify"&gt;1. Нужно добавить в ваш Silverlight проект класс, производный от Application. Например, назовем его NewStartClass, вот содержимое файла NewStartClass.cs: &lt;/p&gt;  &lt;blockquote style="background-color:white;"&gt;&lt;code&gt;&lt;font face="Courier New" color="#000000" size="2"&gt;&lt;font color="#0000ff"&gt;using&lt;/font&gt; System;         &lt;br /&gt;&lt;font color="#0000ff"&gt;using&lt;/font&gt; System.Net;         &lt;br /&gt;&lt;font color="#0000ff"&gt;using&lt;/font&gt; System.Windows;         &lt;br /&gt;&lt;font color="#0000ff"&gt;using&lt;/font&gt; System.Windows.Controls;         &lt;br /&gt;&lt;font color="#0000ff"&gt;using&lt;/font&gt; System.Windows.Documents;         &lt;br /&gt;&lt;font color="#0000ff"&gt;using&lt;/font&gt; System.Windows.Ink;         &lt;br /&gt;&lt;font color="#0000ff"&gt;using&lt;/font&gt; System.Windows.Input;         &lt;br /&gt;&lt;font color="#0000ff"&gt;using&lt;/font&gt; System.Windows.Media;         &lt;br /&gt;&lt;font color="#0000ff"&gt;using&lt;/font&gt; System.Windows.Media.Animation;         &lt;br /&gt;&lt;font color="#0000ff"&gt;using&lt;/font&gt; System.Windows.Shapes;         &lt;br /&gt;        &lt;br /&gt;&lt;font color="#0000ff"&gt;namespace&lt;/font&gt; SilverlightApplication3         &lt;br /&gt;{         &lt;br /&gt;&amp;#160; &lt;font color="#0000ff"&gt;public&lt;/font&gt; &lt;font color="#0000ff"&gt;class&lt;/font&gt; NewStartClass: Application         &lt;br /&gt;&amp;#160; {         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160; }         &lt;br /&gt;}         &lt;br /&gt;&lt;/font&gt;      &lt;br /&gt;&lt;font color="#808080" size="1"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font color="#808080" size="1"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt;  &lt;p align="justify"&gt;2. Откроем свойства silverlight проекта (Правой кнопкой на название проекта -&amp;gt; Properties). На вкладке Silverlight в ниспадающем списке под названием Startup Object выбираем только что созданный класс. &lt;/p&gt;  &lt;p align="justify"&gt;&lt;a href="http://silverlighter.ru/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/digest/img17_5F00_1A6D26DE.jpg"&gt;&lt;img title="img17" style="border-top-width:0px;display:inline;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="160" alt="img17" src="http://silverlighter.ru/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/digest/img17_5F00_thumb_5F00_02863FB8.jpg" width="240" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p align="justify"&gt;Все готово! Теперь в качестве стартового будет использоваться наш класс. Но давайте в заключение добавим корневой элемент визуального интерфейса, чтобы что-нибудь отображалось пользователю на экране. Корневым элементом может быть любой класс, производный от UIElement. По умолчанию используется класс Page, его экземпляр и создадим. &lt;/p&gt;  &lt;p align="justify"&gt;3. Итак, добавим конструктор по умолчанию &lt;/p&gt;  &lt;blockquote style="background-color:white;"&gt;&lt;code&gt;&lt;font face="Courier New" color="#000000" size="2"&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt; NewStartClass()         &lt;br /&gt;{         &lt;br /&gt;&amp;#160; &lt;font color="#0000ff"&gt;this&lt;/font&gt;.Startup +=         &lt;br /&gt;&amp;#160;&amp;#160; &lt;font color="#0000ff"&gt;new&lt;/font&gt; StartupEventHandler(NewStartClass_Startup);         &lt;br /&gt;}&lt;/font&gt;       &lt;br /&gt;      &lt;br /&gt;&lt;font color="#808080" size="1"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font color="#808080" size="1"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt;  &lt;p align="justify"&gt;Вот обработчик события старта приложения: &lt;/p&gt;  &lt;blockquote style="background-color:white;"&gt;&lt;code&gt;&lt;font face="Courier New" color="#000000" size="2"&gt;&lt;font color="#0000ff"&gt;void&lt;/font&gt; NewStartClass_Startup(&lt;font color="#0000ff"&gt;object&lt;/font&gt; sender, StartupEventArgs e)         &lt;br /&gt;{         &lt;br /&gt;&amp;#160; &lt;font color="#2b91af"&gt;Page&lt;/font&gt; root = &lt;font color="#0000ff"&gt;new&lt;/font&gt; &lt;font color="#2b91af"&gt;Page&lt;/font&gt;();         &lt;br /&gt;&amp;#160; &lt;font color="#0000ff"&gt;this&lt;/font&gt;.RootVisual = root;         &lt;br /&gt;}&lt;/font&gt;       &lt;br /&gt;      &lt;br /&gt;&lt;font color="#808080" size="1"&gt;* This source code was highlighted with &lt;a href="http://virtser.net/blog/post/source-code-highlighter.aspx"&gt;&lt;font color="#808080" size="1"&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt;  &lt;p align="justify"&gt;В нем просто устанавливаем корневым элементом экземпляр класса Page. &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://silverlighter.ru/aggbug.aspx?PostID=852" width="1" height="1"&gt;</content><author><name>Sanchez</name><uri>http://silverlighter.ru/members/Sanchez/default.aspx</uri></author><category term="RSS Digest" scheme="http://silverlighter.ru/blogs/digest/archive/tags/RSS+Digest/default.aspx" /><category term="Бюллетень Сильверлайтера" scheme="http://silverlighter.ru/blogs/digest/archive/tags/_11044E043B043B043504420435043D044C04_+_210438043B044C043204350440043B04300439044204350440043004_/default.aspx" /><category term="LayoutTransform" scheme="http://silverlighter.ru/blogs/digest/archive/tags/LayoutTransform/default.aspx" /><category term="Silverlight 3" scheme="http://silverlighter.ru/blogs/digest/archive/tags/Silverlight+3/default.aspx" /><category term="3D" scheme="http://silverlighter.ru/blogs/digest/archive/tags/3D/default.aspx" /><category term="Навигация" scheme="http://silverlighter.ru/blogs/digest/archive/tags/_1D0430043204380433043004460438044F04_/default.aspx" /><category term="Navigation Framework" scheme="http://silverlighter.ru/blogs/digest/archive/tags/Navigation+Framework/default.aspx" /><category term="Блог" scheme="http://silverlighter.ru/blogs/digest/archive/tags/_11043B043E043304_/default.aspx" /></entry></feed>