Новое окно в приложении Silverlight вне браузера

Можно ли создать новое окно верхнего уровня в приложении Silverlight, которое не запускается в браузере? Или хотя бы дочернее окно?

Я нашел решение, используя ChildWindow , но даже несмотря на то, что мой проект настроен для Silverlight 4, этот класс не может быть найден.

У меня есть UserControl (файл XAML), который я хочу показать в новом окне. К сожалению, использование вкладок на самом деле не вариант, поскольку пользователь должен иметь возможность упорядочивать окна, чтобы видеть сразу несколько окон.

Какие-либо предложения?


person AndiDog    schedule 20.06.2011    source источник


Ответы (1)


ChildWindow является частью SDK, вам необходимо добавить System.Windows.Controls.dll для доступа к типу ChildWindow.

Я не уверен, что вы сможете заставить ChildWindow делать то, что ожидаете. ChildWindow разработан для представления окна модальным способом. Однако это модальное поведение на самом деле является функцией шаблона ChildWindow. Возможно повторный шаблон, чтобы удалить модальное поведение. Однако я никогда не пытался манипулировать несколькими дочерними окнами. Вы можете попробовать, большой вопрос будет в том, что произойдет, если вы закроете дочерние окна в другом порядке, в котором они были созданы?

Для того, чтобы использовать ChildWindow для представления вашего UserControl, вам, вероятно, лучше было бы получить от ChildWindow вместо UserControl. Возможно, вы даже обнаружите, что в конечном итоге было бы лучше создать базовый класс между вашим конкретным Xaml и ChildWindow, в который вы поместили бы код, общий для всех ваших окон.

Стоит отметить, что Silverlight 5 поддерживает несколько окон.

person AnthonyWJones    schedule 20.06.2011
comment
Я буду использовать бета-версию Silverlight 5 и ее поддержку для создания собственных окон. Отлично работает :) Это будет лучшее решение для нашего проекта. И для полноты: Учебник по Silverlight 5 Native Windows < / а> - person AndiDog; 23.06.2011