WPF: заключить элементы управления в Chrome дочернего окна с кнопкой закрытия - PullRequest
3 голосов
/ 02 декабря 2010

Я программист на C ++, и я начал побочный проект, чтобы научить меня WPF. Я начал создавать настольное приложение для просмотра изображений и, возможно, их ретуширования, что-то вроде paint.net.

Я хочу заключить элементы управления (например, см. Изображение ниже) в дочернее окно Chrome, которое имеет кнопку закрытия. Что-то вроде MDI, но не совсем.
alt text

Пока я думал, что проще всего заключить его в другой <window></window>, но, похоже, WPF это не нравится. Это дает исключение времени выполнения.

Есть ли более простой способ сделать это? Я не смог найти ссылки, которые бы объяснили что-то подобное.

1 Ответ

3 голосов
/ 02 декабря 2010

Чтобы использовать Window, вам нужно создать новый класс Window в отдельном файле, который затем можно создать и показать из кода вашего основного окна.

var childWindow = new MyChildWindow();
childWindow.Show();

Чтобы получить упрощенный набор хромов Window Window, Style = WindowStyle.ToolWindow в MyChildWindow.

Если вы пытаетесь создать смоделированное имитируемое окно внутри основного окна, которое должно использовать обычный неоконный элемент управления.Silverlight включает класс ChildWindow, но он не встроен в WPF.Чтобы создать нечто похожее, вы можете использовать HeaderedContentControl, который вам нужно будет стилизовать, чтобы он выглядел как окно инструмента путем изменения шаблона ControlTemplate.Вам также необходимо создать такие поведения, как перетаскивание, изменение размера и закрытие элемента управления, который обычно лучше всего обрабатывать, если сделать его настраиваемым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...