2009-10-13 7 views
5

Treansparent背景を持つLabelを持つことができないため、GraphicsBoxの上に手作業で文字列をレンダリングしています。アンチエイリアス処理時にWindowsフォームの文字列が醜いように見えるのはなぜですか?

私もしてみてくださいレンダリングモードどんなにに、私は、文字列が(つまり、何か良いを見てもらうことはできません。彼らは、Wordまたはグラフィックプログラムに表示されるよう。

ここインターフェースモックアップの写真です画面上のレンダリングものと比較: enter image description here

残念ながらStackOverflowのはとてもここでも直接リンクの画像を縮小するようだ:

http://i.stack.imgur.com/vYFaF.png

そしてここでは、レンダリングに使用するコードです

private void pictureBox1_Paint(object sender, PaintEventArgs e) 
{ 
    Graphics labelDrawing = e.Graphics; 
    labelDrawing.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit; 

    labelDrawing.DrawString("Setup Progress", new Font("Calibri", 10, FontStyle.Bold, GraphicsUnit.Point, 0), new SolidBrush(Color.Black), new Point(12, 9)); 
    labelDrawing.DrawString("The following components are being configured.", new Font("Calibri", 10, FontStyle.Regular, GraphicsUnit.Point, 0), new SolidBrush(Color.Black), new Point(24, 27)); 
} 

TextRenderingHintをすべてのオプションに順番に変更しようとしましたが、アンチエイリアスがあれば何を試みても、スクリーンショットのようにぼやけて汚れてしまいます。何か案が?

+1

透明な背景のラベルを使用しました。ラベルのBackColorプロパティをTransparentに設定していたのはどのような問題でしたか? –

+0

BackColourを透明に設定すると、背景が灰色になります。これは、常にラベルが親コントロールの背景をピックアップしているためです。彼のコメントの中のパルメザンコーディスのリンクは、同様の現象を示している。 – Coxy

+0

奇妙な。私は自分の背景をペイントするフォームから派生したフォームでしか作れなかったと思うので、技術的にはラベルは親の背景を拾っていて大丈夫です。 –

答えて

2

.NETには透明なラベルを付けることができます。
はCalibriは10のネイティブフォントサイズを持っていないあなたは問題を描画するとして、あなたがコントロールパネル>フォントでこれを確認することができHow to Use Transparent Images and Labels in Windows Forms

にCodeProjectの上でこの記事をチェックしてください。最小のネイティブフォントサイズは12です(私のマシンでは少なくとも)。サイズを12から12に変更すると、それがはるかに優れていることがわかります。

ネイティブフォントサイズどこかでを使用していない場合Windows/.NET/GDI +はフォントを拡大/縮小しようとします。このスケーリングは、あなたの問題を引き起こす可能性が最も高いです。

+0

情報をお寄せいただきありがとうございます。しかし、CalibriはWordで10ポイント、そしてまだ12ポイントで私のアプリでは醜いです。 TrueTypeフォントとして、私のモックアップのように、醜いことなくどんなサイズでもレンダリングできるはずです。 – Coxy

+0

ええ、私はあなたの不満を理解しています。リッチテキストボックスにCourier New(同様に真のフォント)という同様の問題がありました。サイズ12で試しましたか?また、Word/Photo Shop/etcは、フォントのサイズを変更する際に、もっと "きれい"になる可能性が高いことを忘れないでください。 – ParmesanCodice

+0

ええ、私はアプリでサイズ12ptで試しました。私はそれがClearTypeの問題でなければならないと思う。 – Coxy

関連する問題