Пользовательское окно WPF: нельзя развернуть развернутое окно с помощью Win7 Aero Snap
У меня есть приложение WPF, которое использует пользовательскую рамку окна. Моя проблема в том, что я не могу "отсоединить" мое развернутое окно с помощью Aero Snap в Windows 7.
Свойства моего окна:
AllowsTransparency
установлен вtrue
WindowStyle
установлен вNone
ResizeMode
установлен вCanResizeWithGrip
,
Я управляю движением перетаскивания окна так:
private void TitleBarGrid_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
DragMove();
}
Я могу закрепить окно слева, справа и сверху, и оно будет вести себя как обычные окна (разверните, чтобы заполнить левую половину экрана, разверните, чтобы заполнить правую половину экрана, развернутый соответственно).
Я не уверен, как работает Aero Snap, но то, что я нахожу странным, это то, что обычные окна WPF (нестандартные окна) работают просто отлично; Я могу снять их, если они развернуты без проблем. Почему тогда применение вышеуказанных свойств к моему окну нарушает это?
Возможно ли мне сделать какую-то пользовательскую обработку сообщений WM, чтобы сделать эту работу?
1 ответ
В итоге я использовал библиотеку интеграции оболочки WPF от Microsoft. Он обрабатывает всю низкоуровневую магию, необходимую для работы Aero Snap.