Проблемы с окном WPF без полей: Aero Snap & Maximizing

мы создали окно WPF без полей, установив следующие свойства окна в XAML:

... WindowStyle="None" AllowsTransparency="True" ...

Это вызывает ряд проблем:

1) Решено: У него больше нет встроенной функции изменения размера

2) Решено: У него больше нет встроенной функции перетаскивания.

3) Решено: Без верхней панели инструментов у нее больше нет кнопок минимизации / увеличения / восстановления / закрытия

4) Решено: Максимизация через aero snap или настройку WindowState предотвращает его отсоединение.

5) Максимизация с помощью aero snap или настройка WindowState будет использовать весь экран в качестве границы, перекрывая панель инструментов Windows.

6) Максимизация с помощью aero snap или установки WindowState, кажется, включает в себя поле -7, давая окну 7 пикселей с каждой стороны, которые находятся за краями окна.

1-3 были решены путем создания шаблона окна xaml. Я использовал невидимые прямоугольники в качестве областей дескриптора, и некоторый код, который был применен через переопределение OnApplyTemplate (), чтобы присоединить функциональность через user32.dll SendMessage (...) для изменения размера / перемещения / минимизации / максимизации / восстановления / закрытия.

Я нашел ответ на # 4Вот

Я пытался решить 5-6, перехватывая сообщение максимизации через WndProc и устанавливая размер / позицию вручную, но это приводило к проблеме перезаписи RestoreRegion до максимизированного размера / позиции, удаляя возможность восстановить окно.

Какие'Действительно странным является то, что изменение размера окна от верхней границы до верхней части экрана вызывает автоматическую привязку полной высоты без каких-либо проблем.

Так что я'мы прошли долгий путь, но 5-6 все еще остается проблемой ... есть ли способ вручную указать область максимизации? Или есть способ установить размер окна, не влияя на свойство restoreregion?

Ответы на вопрос(6)

Ваш ответ на вопрос