1

互換性のあるテキスト レンダリングを使用したくないが、使用したくない

Application.SetCompatibleTextRenderingDefault(false);

当然、各ラベルの UseCompatibleTextRendering プロパティを false に設定するだけでよいと思いました。ただし、フォーム デザイナは、UseCompatibleTextRendering が true に設定されている場合にのみ、プロパティを設定するコードを生成するようです。

これは、デフォルトで UseCompatibleTextRendering が false に初期化されていることを意味するに違いないと思いました。しかし、フォームを起動すると、なんと、醜い CompatibleTextRendering が表示されます。だから、質問:

1) デザイナーが UseCompatibleTextRendering を false に設定したときにコードを追加しないのはなぜですか? デフォルトが true の場合、それは true に設定したときです

4

2 に答える 2

5

が既定値であるため、設計者は に設定UseCompatibleTextRenderingするためのコードを追加しません。falsefalse

では、プロパティのデフォルト値が である場合、コントロールはデフォルトで互換性のあるテキスト レンダリングを使用するのはなぜfalseですか? メソッドApplication.SetCompatibleTextRenderingDefaultは指定された値を Control クラスの静的フィールドに割り当て、Control クラスの静的コンストラクターはこのフィールドを に初期化しますtrue

そのため、行Application.SetCompatibleTextRenderingDefault(false);を削除すると、プロパティのデフォルト値に基づいて考えられるものとは反対に、アプリケーションは互換性のあるテキスト レンダリングを使用するようになりUseCompatibleTextRenderingます。

私が見ることができる唯一の合理的な解決策は、自動生成された呼び出しをApplication.SetCompatibleTextRenderingDefaultそのままにしておくことです。

于 2009-08-19T07:45:14.917 に答える