考虑这个 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或其他TextElement不是控件,因此它们没有ArrangeOverride
或方法MesureOverride
。我的问题是为什么它们不是控件?是因为性能问题还是测量尺寸、排列和渲染 aTextElement
和 a之间没有太大区别Control
?换句话说,第一个 Xaml 比第二个 Xaml 有什么好处(除了它的外观)?
谢谢。