フォームをスクリーンにDockする


使い機会はあまりないかもしれませんがフォームをスクリーンにくっつけて固定する方法の紹介。
この方法を使うと作業領域がフォームのために確保され、最大化してもフォームには重ならないようにしてくれます。

使い道

実際に表示させるとこのような感じになります。
左側のChromeブラウザが最大化されているのがアイコンを見るとわかると思います。

edge-form-sample

最大化してもDockされたフォームに重ならないようになっています。

また、Aeroスナップの動作も少し変わります。Dockされたフォームを避けてスナップされる感じ

edge-aero-snap

便利っちゃ便利なのですが、この方法を使うとスクリーンの作業領域そのものが減ってしまうので嫌がられる可能性がかなり高いと思います。
常に表示させる意味のあるアプリケーションには向いてるでしょうけど、そのようなものなかなかないと思います。

とりあえず私は新しく作ってるTwitterクライアントにこれを取り入れてみました。

仕組み

今回使うWinAPIメソッドは以下の2つのみ。割と手軽にできるかな?といった感じです。

初期化の段階だとコードはこれだけなのですが、Dockの設定等を入れるとかなり複雑になるのでこちらでは割愛します。

 ダウンロード

C#ファイルを公開しておきます。ソースコードが長くなるのでZIPのみ。

名前空間はありません。EdgeFormを継承することで使用でき、Dockの場所を変える場合はEdgeプロパティを指定してください。指定しないとフォームはDockされません。

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">