0

次の Xaml を検討してください。

<RichTextBox>
<Document>
   <Paragraph> 
       <Run Text="FirstWord " />
       <Run Text="SecondWord"/>
   </Paragraph >
   <Paragraph>  
       <Run Text="FirstWord " />
       <Run Text="SecondWord"/>
   </Paragraph >
 </Document>
</RichTextBox >

ここで、何らかの理由で次のようなものを使用するとします。

<StackPanel Orientation = "Vertical">
   <StackPanel Orientation = "Horizontal">  // as a Paragraph
       <TextBlock Text="FirstWord " />
       <TextBlock Text="SecondWord"/>
   </StackPanel>
   <StackPanel Orientation = "Horizontal">  // another Paragraph
       <TextBlock Text="FirstWord " />
       <TextBlock Text="SecondWord"/>
   </StackPanel>
</StackPanel>

RunまたはParagraphまたはその他のTextElementControls ではないため、これらのArrangeOverrideまたはMesureOverrideメソッドはありません。私の質問は、なぜそれらがコントロールではないのですか? TextElementそれはパフォーマンス上の問題によるものですか、それとも aと aのサイズの測定、配置、およびレンダリングに大きな違いはありませんControlか? つまり、最初の Xaml が 2 番目の Xaml よりも優れている点は何ですか (外観は別として)。

ありがとう。

4

1 に答える 1

0

これらはドキュメントの他の部分から分離されていないため、コントロールではありません。ドキュメント内で設定しているのは子コントロールではなく、ドキュメントのコンテンツです。レンダリングは完全にRichTextBox内で行われます。

最初の例と2番目の例の主な違いは、RichTextBoxを使用すると、テキストの一部が異なる書式で流れるテキストを作成できることです。通常のTextBlockを使用してそれを行うことは可能ですが、改行や動的なサイズ変更などを微調整することは困難です。

于 2013-01-06T07:23:26.097 に答える