2009-09-24 3 views
12

В настоящее время я изучаю WPF. Я до сих пор наслаждаюсь этим. Мне нравится, как легко создавать отличные приложения, и хотел бы создать приложение с пользовательской границей окна. Я хотел бы, чтобы это выглядело примерно так:Создание пользовательских форм в WPF?

Я знаю, что я мог бы просто легко изменить тип окна, чтобы не иметь границу и идти оттуда, но это, кажется, так же, как WinForms. Разве не лучше было бы создать класс, полученный из Window, и ввел его в стиле? Если да, то как я могу это сделать? Благодаря!

ответ

15

Вот большая статья о настройке окна «хром» с WPF:

Custom Window Chrome in WPF

Это сопровождается проектом кодекса галерея, с которой вы можете скачать код:

WPF Chrome

3

Чтобы показать нестандартные границы, вы должны установить AllowsTransparency = True и Border из окна. Если вы хотите сделать это в классе, зависит от вас. Вы в основном должны понимать, что WPF - это просто приложение DirectX, размещенное в стандартном окне. Таким образом, если вы хотите нестандартное поведение Windows, вам нужно отказаться от стандартной границы окна и начать повторное подключение к ней на основе стандартных событий окна, которые вы хотите обработать. Перетаскивание, минимизация/максимизация/восстановление, панель заголовка.

Действительно, вам не нужно тратить больше 30 минут на час, чтобы придумать что-то близкое к тому, что вы хотите, и вы, безусловно, можете разместить свое пользовательское окно в базовом классе для повторного использования по дороге ,

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

+0

Будьте осторожны с доступностью и т. Д., Если вы заново изобретете стандартную строку заголовка окна. Как любой инструмент доступности узнает, как закрыть окно и т. Д.? Однако вам может не понравиться ваша заявка. –

0

Существует продукт под названием «Blendables», который содержит элемент управления ChromelessWindow в своем комплекте "Essentials Mix", который делает это очень простым в использовании. Я никогда не использовал его сам, я просто знаю, что он существует и думал, что это может быть полезно. На минимальном уровне он показывает, что вы можете делать то, что вы просите о создании многоразового, templatable chrome.

Смежные вопросы