2017-04-17 2 views
0

私はデフォルトでMicrosoftフォームと同じように見えるカスタムフォームを作成する必要があります。System.Drawing.Penの使用方法?

現在、私はタイトルバーのボタンのカスタマイズに取り組んでいます。

私はボタンを描画するためにグラフィックスメソッドを使用しています。

私が最大化ボタンを描いたコードを見てください。

g.DrawRectangle(new Pen(Color.Black), maxIconRect); 

しかし、私はMicrosoftフォームの正確な外観を得ることができません。

下の画像では、最初の画像は私が作成したタイトルバーです。 2番目はMicrosoftフォームのタイトルバーです。

Caption bar

あなたは最大化の違いを確認し、ボタンを最小限に抑えることができます。これら2つのフォームのボタンの厚さと透明度は異なります。

私は以下のようにペンの幅を指定しようとしました。

Var pen = new Pen(Color.Black, 0.5F); 

しかし、外観に違いはありません。

これを達成するための提案をお願いしますか?

ありがとうございます。あなたはこの1 Graphics.SmoothingMode = SmoothingMode.AntiAlias;のライン似てましたどこかで のOnPaintメソッド:(!カントー、Xのアンチエイリアスに持っている必要があります)

編集/説明をアンチエイリアスを無効にし、ラインビットthinerはトリックを行う必要があります作る

+0

OS、あなたはこのツールを開発していますか? – Anil

+4

これはペンとは関係ありません。この違いは、プログラムが「dpi対応」であるという問題に関係しています。そのトピックについてのスタックオーバーフローを検索すると、プログラムでdpiを認識させるために必要な情報が表示されます。これにより、Windowsはプログラムを実際の画面解像度で描画することができ、解像度を低くして出力を画面に合わせてください。 –

+0

これはWindows用のものです。 –

答えて

-1

あなたがそれを削除する場合 - ボタンを最大限に活用して最小化する必要がありますが、Xボタンはたぶん変わったように見えるので、Xを描く前にこの2本の他のボタンを描きます。

+0

どうすればいいですか?説明していただけますか? –