どのように私は、Windowsフォーム上の境界線の太さや色を制御することができますか?

StackOverflow https://stackoverflow.com/questions/1244570

  •  12-09-2019
  •  | 
  •  

質問

私は、これはシステムレベルで制御することができることを知っているが、私は、システムの設定を上書きしたいだけ自分のアプリケーションのために特定の外観を持っています。私はそれをしない別のWindowsアプリを見てきたので、これを制御するためにWindows API関数が存在しなければならないと仮定しています。

(私がこれを行うべきではない理由に行く必要はありません)。

役に立ちましたか?

解決

あなたのアプリケーション用のカスタム外観をしたい場合、私はちょうど私のフォームボーダレスを作り、すべてを自分自身を扱うでしょう、どちらかのPaintイベントでフォーム自体に描画するか、あるいは周りのコントロールを移動することにより、(パネルなど)サイズ変更でイベント。あなたはなど、ドラッグ、サイズ変更、終了/最小化するようなものを処理する必要がありますが、これのどれも特に困難ではありません。

ここにの私の答えですそれを自分で行うことの基本を示した同様の質問は、(これは、Windowsモバイルのためだが、それはあまりにも通常のWindowsで動作します)。

他のヒント

アプリケーションウィンドウのこれらの外側の要素をまとめてウィンドウ「クロム」と呼ばれ、実際にオペレーティング・システムによってレンダリングされます。各種フラグは、各ウィンドウのインスタンスのコントロール特定の態様には、Windows APIレベルで使用されている(例えば、コントロールボックスの既存の、ボーダー、最小/最大ボタン、等)が、サイズ変更可能なウィンドウの境界線の幅は、システムの設定によって決定されます均一性を確保し、ウィンドウごとウィンドウで設定できませんします。

あなたは、多くの場合、WindowsのAPIと相互作用することにより、.NETによって公開されていない、あなたの窓の側面のいくつかの制御を取得することができますし、その下で可能であるばかりか決定するために、WindowsのAPIドキュメントを読むことが有益ですレベル。私は出発点としてのCreateWindowExのドキュメントを読んでお勧めします。

http://msdn.microsoft.com/ EN-US /ライブラリ/ ms632680(VS.85).aspxの

.NETを使用すると、境界線なし、単一ピクセル幅の境界線、およびサイズ変更可能(太枠)の中から選択することFormBorderStyleプロパティを変更することができます。あなたが何かのカスタムを行うしたい場合は、noneに.NETの境界線スタイルを設定し、自分自身をクロムウィンドウをレンダリングするための責任を負う必要があります。これは、独自のキャプションバー、最小/最大ボタン、ウィンドウの境界線を描画することを伴います。これは、光事業ではないのですが、多くのアプリケーションは、それを行います。それはあなたが本当にしたいすべての境界線の幅を制御するためのものである場合には長い道のりです。

この記事では、1がWPFでこのタスクに近づくかもしれない、とも有用であり得るかになります。

WPF

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top