ファイル名を表示する一連のボタンがあります。ファイル名が利用可能なピクセル数よりも広いときにTextプロパティを設定すると、テキストは "ラップ"され、テキストがLeftMiddleと表示されている場合はLeftTopと表示されます。したがって、表示できる文字数だけを表示します(PathCompactPathEx()メソッドを使用)。System.Windows.Forms.ButtonのTextで使用できるピクセルを特定する方法
ただし、使用可能なピクセル数を確認するにはどうすればよいですか?現在のアプローチは次のとおりです。
button.Width - button.Image.Width - button.Padding.Horizontal
これは必ずしも機能しない場合があり、テキストがまだラップすることがあります。
テキストのピクセル数を決定する正しい方法は何ですか?
はい、利用可能なスペースがほぼわかっていることを考えればわかります(質問を参照)。私はまだTextRenderer.MeasureText()が内部のButtonペイント処理と異なるかもしれない理由として不思議です...もちろん、ボタン内のテキストに使用可能なピクセル数は計算できる必要がありますか? – JohnBarton
ボタンはさまざまな方法でテキストをペイントできるためです。たとえば、FlatStyle == Systemの場合、システムはFlatStyle == Defaultの場合はテキストが描画され、UseCompatibleTextRenderingプロパティの場合はテキストペイントが使用されます。また、さまざまなペイントモードでボタンクラスで使用されるテキストマージンもわかりません。 – arbiter
質問に答える時間をとってくれてありがとう、大変感謝しています。 – JohnBarton