Пользовательское окно 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.

Другие вопросы по тегам