Пользовательское окно WPF: нельзя развернуть развернутое окно с помощью Win7 Aero Snap - PullRequest
2 голосов
/ 13 октября 2010

У меня есть приложение 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 Ответ

2 голосов
/ 07 ноября 2010

Я только что использовал WPF Shell Integration Library от Microsoft.Он обрабатывает всю низкоуровневую магию, необходимую для работы Aero Snap.

...