ページ

2009年10月16日金曜日

[Windows7][WPF] キャプションバーの無いウインドウでエアロシェイク

Implementing Aero Shake in a WindoStyle None WPF Window より。
Windows 7 でキャプションバーをふるふるするとそれ以外のウインドウが最小化してくれるエアロシェイク、あれってキャプションバーが無い時どうすんの?という話。

記事では WPF で WindowStyle=”None” としてキャプションバーが無いウインドウを作っています。
で、単に MouseLeftButtonDown イベントで DragMove() メソッドを呼び出してやればいいそうです。
すっごい簡単。
けど、こんなの知らないとわかんないな(笑)
ちなみに、この場合、キャプションバーをドラッグしてるのとほとんど同じ動作をするようです。なので、エアロシェイクに対応するだけでなく、ウインドウを移動できるようにもなっちゃいます。

ちょっと試してみましたが、もちろん Window だけではなく、たとえば TextBlock の MouseLeftButtonDown イベントで DragMove() を呼び出してやっても同じように動きました。

# Windows.Form のときは WM_NCHITTEST で HTCAPTION を返してやるとかかな?


0 件のコメント:

コメントを投稿