Главная » Silverlight » Входная страница HTML

0

И наконец, последний "ингредиент" развертывания — тестовая страница HTML. Она является точкой входа в содержимое Silverlight. Посетитель запрашивает страни­цу с помощью браузера. В изолированном решении Silverlight программа Visual Studio присваивает файлу тестовой страницы имя TestPage.html. В проекте, хостируемом страницей ASP.NET, тестовая страница получает имя на основе имени проекта. Чаще всего ее переименовывают, присвоив более информативное имя.

Тестовая страница HTML не содержит разметки или кода Silverlight. Вместо этого в ней с помощью кода JavaScript определяется область содержимого для надстройки Silverlight. По этой причине в браузере должна быть включена поддержка JavaScript, иначе браузер не сможет вывести содержимое Silverlight на экран. Ниже приведена сокращенная версия тестовой страницы HTML, в которой, однако, сохранены все суще­ственные компоненты.

.<html xmlns="http://www.w3.org/1999/xhtml" >

<!— saved from url=(0014)about:internet —>

<head>

<title>TecroBaH страница проекта Silverlight</title> <style type="text/css">

</style>

<script type="text/javascript">

</script>

</head>

<body>

<form id="forml" runat="server" style="height:100%"> <!— Здесь выводится содержимое Silverlight —> <div id="silverlightControlHost">

<object data="data:application/x-silverlight," type="application/x-silverlight-2" width="100%"

he ight="10 0 %">

<param name="source"

value="SilverlightApplicationl.xap"/> <param name="onerror" value="onSilverlightError" /> <param name="background" value="white" /> <param name=

"minRuntimeVersion" value="3. 0.40624 .0" "/> <param name="autoUpgrade" value="true" /> <a href=

"http: / /go .microsoft. com/fwlink4>

/?LinkID=149156&v=3.0.40624.0" style="text-decoration: none"> <img src=

"http://go.microsoft.com/fwlink/?LinkId=108181" alt="ycTaHOBMTe надстройку Microsoft Silverlight" style="border-style: none"/>

</a> </object>

<iframe id="_sl_historyFrame"

style=’visibility:hidden;

height: 0;width: 0;border: Opx’x/iframe>

</div> </form> </body> </html>

Ключевой компонент разметки — элемент <fdiv>, отмеченный полужирным шриф­том. Он представляет область содержимого Silverlight и содержит элемент <object>, который загружает надстройку Silverlight. Элемент <object> содержит четыре ключе­вых атрибута: data (идентификация объекта как области содержимого Silverlight), type (задание требуемой версии Silverlight, вторая или выше), height (высота области содер­жимого Silverlight) и width (ширина области содержимого).

Изменение тестовой страницы

При использовании сайта ASP.NET тестовая страница генерируется только один раз при создании сайта. В результате страницу HTML можно изменять, не беспокоясь о том, что изменения будут переопределены. При использовании изолированного проекта без сайта ASP.NET программа Visual Studio генерирует тестовую страни­цу при каждом запуске проекта. В результате этого любые изменения тестовой страницы отбрасываются. Если нужно настраивать тестовую страницу, легче всего создать ее для проекта вручную. Для этого выполните следующие операции.

1.             Выполните проект, как минимум, один раз, чтобы Visual Studio сгенерировала тестовую страницу.

2.        Щелкните на пиктограмме Show All Files (Показать все файлы), расположенной в верхней части окна Solution Explorer (Проводник решений).

3.             В окне Solution Explorer разверните папку Bin\Debug.

4.             Найдите файл TestPage. html, щелкните на нем правой кнопкой мыши и выберите команду Сору (Копиро­вать). Щелкните правой кнопкой мыши на папке BinXDebug и выберите команду Paste (Вставить). Копия будет служить пользовательской тестовой страницей. Щелкните правой кнопкой мыши на новом файле и выберите команду Rename (Переименовать). Введите произвольное имя.

5.        Чтобы сделать пользовательскую тестовую страницу частью проекта, щелкните на файле правой кнопкой мыши и выберите команду Include in Project (Включить в проект).

6.             Чтобы направить Visual Studio на пользовательскую тестовую страницу при выполнении проекта, щелкните на файле тестовой страницы правой кнопкой мыши и выберите команду Set As Start Page (Назначить стартовой страницей).

Примечание. Будьте осторожны при модификации, казалось бы, тривиальных компонентов тестовой страницы HTML. Некоторые из них необходимы для обеспечения совместимости с браузерами определенных типов. Например, запятая в конце атрибута data элемента <object> обеспечивает совместимость с браузерами Firefox. Невидимый элемент <iframe> в конце элемента <div> позволяет выполнять навигацию в браузерах Safari. Фактически, вы можете модифицировать только значения ширины и высоты, список параметров и альтернативное содержимое.

Задание размеров области содержимого Silverlight

По умолчанию области содержимого Silverlight присваивается ширина и высота 100%, в результате чего содержимое занимает все доступное пространство в окне брау­зера. Размер области содержимого можно зафиксировать, жестко закодировав значения ширины и высоты в пикселях (обычно так не делают, поскольку такое ограничение слишком сильное). Можно также расположить элемент <div>, содержащий область, в ограниченном месте страницы, например в ячейке таблицы, в другом элементе с фиксированными размерами или между другими элементами <div> в многоколоноч­ной структуре.

Страница XAML может содержать жестко закодированные размеры, даже когда установленные по умолчанию размеры тестовой страницы ограничивают область содер­жимого Silverlight доступным пространством в окне браузера. Программа Visual Studio по умолчанию присваивает каждой новой странице Silverlight ширину 4 00рх и высо­ту ЗООрх путем установки атрибутов Height и Width корневого элемента UserControl. Если окно браузера больше, чем жестко закодированные размеры страницы, дополни­тельное пространство не используется. Если же оно меньше, часть страницы может оказаться за пределами видимой области окна.

Жесткое кодирование размеров полезно при создании сложных графических струк­тур с абсолютным позиционированием и минимальной гибкостью. В противном случае атрибуты Width и Height лучше удалить из открывающего дескриптора <UserControl>. Тогда размеры страницы совпадут с размерами области содержимого Silverlight, а раз­меры области содержимого будут определяться окном браузера. В результате содержи­мое Silverlight всегда будет вписываться в текущее доступное пространство.

Чтобы увидеть фактические размеры области содержимого Silverlight, добавьте в нее рамку с помощью простого правила в дескрипторе <div>, например, следующим образом.

<div id="silverlightControlHost" style="border: lpx red solid">

Расширяемые и масштабируемые страницы Silverlight рассматриваются в главе 3 при обсуждении структуры страницы.

Источник: Мак-Дональд, Мэтью. Silverlight 3 с примерами на С# для профессионалов. : Пер. с англ. —- М. : ООО «И.Д. Вильяме», 2010. — 656 с. : ил. — Парал. тит. англ.

По теме:

  • Комментарии