如何更改RichTextBox段落间距?

Dar*_*ter 58 wpf richtextbox

我在WPF中使用RichTextBox,并尝试将默认段落间距设置为0(这样就没有段落间距).虽然我可以在XAML中执行此操作,但我希望尽可能以编程方式实现它.有任何想法吗?

moo*_*ogs 193

用风格做了(双关语缩进)

<RichTextBox  Margin="0,51,0,0" Name="mainTextBox" >
        <RichTextBox.Resources>
            <Style TargetType="{x:Type Paragraph}">
                <Setter Property="Margin" Value="0"/>
            </Style>
        </RichTextBox.Resources>
    </RichTextBox>
Run Code Online (Sandbox Code Playgroud)

  • 我最喜欢这个解决方案.不仅因为它是用风格完成的,而且因为它是用风格完成的. (20认同)
  • 对于发现此问题且正在尝试针对Windows Phone 7执行此操作的任何人,Margin属性不可用.`<LineBreak />`... (3认同)
  • 非常感谢!我讨厌RichTextBox如何在Enter上插入额外的"行",我发现它如此陌生,并且担心解决方案会非常困难.男孩,我松了一口气! (2认同)

Ram*_*oni 24

使用线高

RichTextBox rtb = new RichTextBox();    
Paragraph p = rtb.Document.Blocks.FirstBlock as Paragraph;    
p.LineHeight = 10;
Run Code Online (Sandbox Code Playgroud)

  • 这甚至都没有回答这个问题.提问者想知道如何更改_paragraph_ spacing,即每个段落之间的空格,而不是_line_间距.你应该设置`p.Margin`而不是'p.LineHeight` (18认同)

Dar*_*ter 17

关闭,所以你得到了积分.实际上结果是设定了保证金,

p.Margin = new Thickness(0);
Run Code Online (Sandbox Code Playgroud)


小智 8

对于我在WPF中的VS2017来说,这可以做到:

 <RichTextBox HorizontalAlignment="Left" Height="126" Margin="10,280,0,0" VerticalAlignment="Top" Width="343" FontSize="14" Block.LineHeight="2"/>
Run Code Online (Sandbox Code Playgroud)

关键是Block.LineHeight =“ 2”

您也可以在“属性”视图中找到它,但不能从此处更改为6px以下。

  • “您不能从那里更改低于 6px” - 您可以通过手动编辑值而不使用下拉列表将其更改为 1px,下拉列表仅包含从 6px 开始的常用值。 (2认同)

小智 6

RichTextBox rtb = new RichTextBox();
rtb.SetValue(Paragraph.LineHeightProperty, 1.0);
Run Code Online (Sandbox Code Playgroud)