Главная » Silverlight » Всплывающее окно

0

Класс HtmlPage содержит метод PopupWindow (), позволяющий открыть всплываю­щее окно для вывода новой веб-страницы. Оно используется, главным образом, для ото­бражения рекламных материалов и содержимого других веб-сайтов. Для вывода других компонентов текущего приложения Silverlight оно не предназначено. Если необходимо всплывающее окно для отображения компонентов текущего приложения Silverlight, луч­ше воспользоваться элементом управления ChildWindow (см. главу 7).

Метод PopupWindow () довольно надежный: он обманывает большинство средств бло­кировки всплывающих окон, встроенных в браузеры (в зависимости от предпочтений пользователя). Однако полагаться на то, что он выведет важные компоненты приложе­ния Silverlight, нельзя. С его помощью рекомендуется выводить только дополнительную информацию, несущественную для приложения. Метод PopupWindow () открывает окно путем вызова метода window. open () сценария JavaScript.

Ниже приведен пример использования метода PopupWindows (). Обратите внимание на то, что код проверяет свойство IsPopupWindowAllowed, чтобы избежать возможных ошибок вследствие того, что всплывающие окна поддерживаются не во всех сценариях.

if (HtmlPage.IsPopupWindowAllowed)

{

// Конфигурирование всплывающего окна HtmlPopupWindowOptions options =

new HtmlPopupWindowOptions (); options.Resizeable = true;

// Вывод всплывающего окна;

// окну передается абсолютный URI, необязательный // целевой фрейм и значение HtmlPopupWindowOptions HtmlPage.PopupWindow(new Uri(uriForAdvertisement), null, options);

}

Ниже приведены правила и ограничения, накладываемые на всплывающее окно.

•       Если на входной странице HTML параметр allowHtmlPopupWindow равен false, всплывающее окно не выводится.

•       Если входная страница HTML и приложение Silverlight развернуты в разных до­менах, всплывающие окна заблокированы. Впрочем, это правило отменяется, если на входной странице HTML параметру allowHtmlPopupWindow явно присвое­но значение true.

•       можно активизировать только в ответ на какое-либо действие пользователя в видимой области приложения Silverlight.

•       В обработчике любого события метод PopupWindow () можно вызвать только один раз. Это означает, что вывести одновременно более одного всплывающего окна невозможно.

•       подчиняется правилам безопасности, установленным в Inter­net Explorer или Firefox. В браузере Safari оно не выводится.

•       Конфигурируя объект HtmlPopupWindowOptions, можно определить ряд параме­тров всплывающего окна (как и в коде JavaScript), таких как исходные разме­ры, возможность изменения размеров, координаты окна на экране и т.д. Однако браузер не всегда подчиняется этим параметрам. Например, браузер может от­казаться вывести всплывающее окно, меньшее определенных размеров. Иногда браузер выводит всплывающее окно в отдельной вкладке текущего окна.

•   При вызове метода PopupWindow () ему нужно передать абсолютный адрес URI.

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

По теме:

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