複数行のテキストブロックの行ごとに異なる水平方向の配置を設定することは可能ですか?
たとえば、テキストのヘッダーを中央に配置したいが、メイン テキストは左側に配置したい。この問題に複数のテキストブロックを使用したくありません。
ありがとう。
TextBlock コントロールを使用して探しているものを取得できるとは思いません。これは、TextBlock に追加できる Inline 要素では、水平方向の配置 (行ごと) を制御できないためです。
とにかく、MSDN で指定されているように、実際にはこれが最善のアプローチだとは思いません。
TextBlock は、数行以上のコンテンツを表示する必要があるシナリオには最適化されていません。このようなシナリオでは、適切な表示コントロールと組み合わせた FlowDocument が、パフォーマンスの点で TextBlock よりも適しています。TextBlock の後、FlowDocumentScrollViewer は、フロー コンテンツを表示するための次に軽量なコントロールであり、最小限の UI でスクロール コンテンツ領域を提供するだけです。FlowDocumentPageViewer は、フロー コンテンツの「ページ単位」の表示モードを中心に最適化されています。最後に、FlowDocumentReader は、フロー コンテンツを表示するための最も豊富なセット機能をサポートしますが、それに応じてより重いものになります。
したがって、より柔軟な制御が必要であり、要求に対するパフォーマンスの点でも優れている場合は、 FlowDocumentを使用する必要があります。
最後に一言付け加えておきたい。パフォーマンスの劇的な改善を求めていて、単一の TextBlock が適切なソリューションであると思われる場合は、代わりにビジュアル要素と相対的なDrawTextメソッドを使用することをお勧めします。ただし、将来維持するための簡単なコントロールを探している場合は、既に述べたように FlowDocument を選択してください。