我有一个WPF文本块设置为属性TextWrapping=“Wrap”。
当我传入一个开头带有制表符的长字符串(在我的例子中是vbTab)时,我希望 Package 能够尊重这一点,并保持字符串 Package 部分的缩进。例如,而不是:
[vbTab]thisisreallylong
和 Package
我想
[vbTab]thisisreallylong
[vbTab]和 Package
并且理想地用于多个标签等。也
[edit - additional details]
因为文本块的大小是可变的,并且包含多行具有不同缩进量的文本,所以我不能只留一个边距或手动拆分字符串并添加制表符。
从本质上讲,我想要的是它像对待段落一样对待文本行,在换行时保持缩进。
1条答案
按热度按时间e1xvtsh31#
根据你的想法,我能想出这个解决办法
我将转换所有的制表符在每一行的开始,以.5英寸的保证金,并将添加相同的文字在一个段落,并适用于计算的保证金相同
TextBlock不适用于基本文本内联,如run bold,内联ui容器等。在TextBlock中添加段落更加复杂,因此我基于FlowDocument提出了解决方案。
结果
下面的示例使用
FlowDocumentScrollViewer
或RichTextBox
或FlowDocumentReader
或普通FlowDocument
演示了相同的操作我已经创建了使用附加属性的解决方案,所以你可以附加相同的任何提到,甚至添加自己的主机的文件。您只需将
IndentationProvider.Text
设置为所需的主机。XAML
	
指制表符IndentationProvider
Demo
尝试demo project