是否可以为多行文本块的不同行设置不同的水平对齐方式?
例如,我想将文本的标题居中,但主要文本我想靠左对齐。我不想为这个问题使用几个文本块。
谢谢。
我认为您无法使用 TextBlock 控件获得所需的内容,这是因为您可以在 TextBlock 中添加的内联元素不允许您控制水平对齐(逐行)。
无论如何,我认为这不是最好的方法,事实上,正如 MSDN 所指定的那样:
TextBlock 没有针对需要显示多于几行内容的场景进行优化;对于此类场景,就性能而言,FlowDocument 与适当的查看控件相结合是比 TextBlock 更好的选择。在 TextBlock 之后,FlowDocumentScrollViewer 是下一个用于显示流内容的最轻量级的控件,它只是提供了一个具有最少 UI 的滚动内容区域。FlowDocumentPageViewer 针对流内容的“一次一页”查看模式进行了优化。最后,FlowDocumentReader 支持查看流内容的最丰富的集合功能,但相应地更重。
因此,如果您想要更灵活的控制,并且在您要求它执行的操作方面也有更好的性能,您应该使用FlowDocument。
我想补充一点。如果您正在寻找性能的显着改进,并且您认为单个 TextBlock 是正确的解决方案,我建议您改用Visual元素和相关的DrawText方法。但是,如果您正在寻找一种易于在将来维护的控件,则选择 FlowDocument,如前所述。