2012-04-21 14 views
0

複数行のテキストブロックの異なる行に異なる水平配置を設定できますか?複数行WPFテキストブロック:行の異なる配置

たとえば、テキストのヘッダーを中央にしたいが、メインテキストは左側に揃えたいと思う。私はこの問題にいくつかのテキストブロックを使用したくないです。

ありがとうございました。

+0

なぜStackPanelに2つのTextBlockが必要なのですか?それは私が考えることができる最も単純なソリューションです。 – Clemens

答えて

1

TextBlockコントロールを使用して探しているものを得ることはできません。これは、TextBlockに追加できるインライン要素では、水平方向の配置を行単位で制御できないためです。

とにかく私は、MSDNで指定され、これは、実際には、最善のアプローチであるとは思わない:

のTextBlockは、コンテンツの数行よりも多くを表示する必要があるシナリオ用に最適化されていません。このようなシナリオでは、適切な表示コントロールと結合されたFlowDocumentが、パフォーマンスに関してTextBlockよりも優れた選択肢となります。 TextBlockの後、FlowDocumentScrollViewerは、フローコンテンツを表示するための次の軽量コントロールであり、最小限のUIでスクロールコンテンツエリアを提供するだけです。 FlowDocumentPageViewerは、フローコンテンツの「ページアットタイムビュー」モードで最適化されています。最後に、FlowDocumentReaderは、フローコンテンツを表示するために最も豊富に設定された機能をサポートしますが、それに応じて重量も重くなります。

だから、より柔軟な制御をしたいと思ったら、パフォーマンスの点ではより良い場合は、FlowDocumentを使用してください。

最終的な発言を追加したいと思います。パフォーマンスの大幅な向上を望んでおり、単一のTextBlockが適切なソリューションだと思うなら、代わりにVisual要素と相対DrawTextメソッドを使用することをお勧めします。しかし、将来的に維持するための簡単なコントロールが必要な場合は、すでに述べたようにFlowDocumentを選択します。

関連する問題