Как создать всплывающее диалоговое окно в Silverlight? - PullRequest
16 голосов
/ 04 ноября 2008

Я хотел бы создать всплывающее диалоговое окно в Silverlight, в котором я могу управлять элементами управления, вводить данные и возвращать значение. Я хочу, чтобы он был модальным, чтобы при его открытии страница «Ниже» была недоступна. Я еще не нашел простой способ сделать это. Есть предложения?

Ответы [ 6 ]

12 голосов
/ 04 июня 2009

Я знаю вопрос, заданный для решения Silverlight 2, но в Silverlight 3 (бета-версия, RTW в июле 2009 г.) есть встроенное окно ChildWindow, которое может выполнять все, что вы ищете.

5 голосов
/ 04 ноября 2008

Я также не нашел идеального решения. Самое близкое, что я видел, это: Использование Popup для создания класса диалога

Если это нормально, чтобы быть немодальным, вы можете попробовать этот совет, используя HtmlPage.PopupWindow (). Как открыть окно браузера

1 голос
/ 26 января 2009
1 голос
/ 11 декабря 2008

Я новичок в фреймворке Sliverlight и только начинаю разбираться в этом, но у меня аналогичная потребность во всплывающем модальном диалоговом окне. Я только что попробовал идею, которая выглядит многообещающе:

  1. Я создал Rectangle (названный «Shield»), который покрывает всю мою область применения. Он существует поверх всего в основном приложении. Я установил кисть заливки на Белый, а кисть непрозрачности - на 81%, чтобы содержимое основного приложения просвечивало, но слегка (как в отключенном состоянии). Затем убедитесь, что «Щит» проверен на попадание. Теперь, когда «Щит» виден, он также, по сути, заблокирует весь ввод для элементов управления ниже (по крайней мере, от мыши, еще не пробовал клавиатуру). Когда приложение инициализируется, установите видимость «Щит» на «Свернутый». В этом состоянии он не будет блокировать ввод в основное приложение.
  2. Диалоговое окно затем строится на другом элементе холста, который существует в z-порядке сверху экрана. Обычно диалоговое окно будет невидимым, но когда мне это нужно, я просто устанавливаю «Щит» на видимое, а диалоговое окно на видимое. Поскольку диалог находится над «Щитом», я получаю очень модальное поведение. Когда диалоговое окно закрыто, сделайте диалоговое окно и холст «Щит» снова невидимым, и главное приложение снова станет активным.

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

0 голосов
/ 08 марта 2010

Вот бесплатная библиотека, которая предоставляет один: http://www.vectorlight.net/demos/popup_dialogs.aspx

0 голосов
/ 25 ноября 2009

У меня было такое же требование, и Построение ScottGu базового модального диалога с использованием пользовательского элемента управления было лучшим решением, отвечающим моим требованиям.

...