0

境界線が拡張されてWinFormいる場合、ガラス領域にテキストを配置すると、テキストが正しく表示されません。

本文はこんな感じStatus

忙しい猫 http://img833.imageshack.us/img833/4732/95454282.png ![フォーム][1]

テキストが正常に表示されるように修正するにはどうすればよいですか?

4

1 に答える 1

1

Winforms のテキストは、アルファ 0 でレンダリングされます。これにより、ガラスに描画すると透明になります。したがって、選択した ForeColor ではなく、背景色が表示されます。

ガラスにテキストを描画するのは面倒です。テキストの背景が明確に定義されていないため、簡単にアンチエイリアスを正しく適用することはできません。スクリーンショットは、Windows がその問題にどのように対処しているかを示しています。ウィンドウ キャプションのテキストの背景が乳白色であるため、アンチエイリアシングによって文字が背景に適切に溶け込んでいます。

これもあなたがする必要があることです。ピンボーク、DTT_GLOWSIZE フラグ オプションを指定した DrawThemeTextEx() で、そのように描画されたテキストを取得します。必要な宣言について pinvoke.net にアクセスするか、このプロジェクトを使用してください。また、フォールバックを提供することを忘れないでください。これにより、このウィンドウは古い Windows バージョンでも適切に表示されます。新しいバージョンでは、ガラスは Windows 8 には適していません。

于 2013-05-27T14:07:15.940 に答える