里面有一个带有Paragraph的RichTextBox。 如何改变内段的边距?没有这样的财产。 将RichTextBox.Padding设置为“-12,0”会有所帮助,但看起来像是一个丑陋的黑客。
答案 0 :(得分:2)
默认情况下,RichTextBox的根边界元素将具有边距(12,0,12,0),因此默认情况下会添加左侧和右侧的空间。如果要更改行为,则必须自定义RichTextBox模板。
您可以使用此模板,避免在左右添加额外的边距。
<ControlTemplate TargetType="RichTextBox">
<Grid Background="Transparent">
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}">
<ContentControl x:Name="ContentElement" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" Padding="{TemplateBinding Padding}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Border>
</Grid>
</ControlTemplate>
此致 Mawy
答案 1 :(得分:1)
这个选项怎么样:锁也难看,但仍然:
<StackPanel x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<RichTextBox>
<Paragraph>
<InlineUIContainer>
<TextBlock x:Name="tbMargin" Margin="100,0,0,0"></TextBlock>
</InlineUIContainer>
Hi from Paragraph
</Paragraph>
</RichTextBox>
</StackPanel>
答案 2 :(得分:1)
另一个黑客:(至少留下保证金:)
<Paragraph xml:space="preserve">
Hi from Paragraph
Hi from Paragraph 2
</Paragraph>
答案 3 :(得分:1)
您只需要设置段落的属性TextIndent。我会告诉你一个样本:
<RichTextBox>
<FlowDocument>
<Paragraph TextIndent="6"><Run Text="Paragraph 1"/></Paragraph>
<Paragraph TextIndent="12"><Run Text="Paragraph 2"/></Paragraph>
<Paragraph TextIndent="18"><Run Text="Paragraph 3"/></Paragraph>
<Paragraph TextIndent="24"><Run Text="Paragraph 4"/></Paragraph>
</FlowDocument>
</RichTextBox>
这将导致: