69

我在 WPF 中使用 RichTextBox,并尝试将默认段落间距设置为 0(这样就没有段落间距)。虽然我可以在 XAML 中做到这一点,但如果可能的话,我想以编程方式实现它。有任何想法吗?

4

8 回答 8

214

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

<RichTextBox  Margin="0,51,0,0" Name="mainTextBox" >
        <RichTextBox.Resources>
            <Style TargetType="{x:Type Paragraph}">
                <Setter Property="Margin" Value="0"/>
            </Style>
        </RichTextBox.Resources>
    </RichTextBox>
于 2009-01-15T07:06:48.227 回答
27

使用行高

RichTextBox rtb = new RichTextBox();    
Paragraph p = rtb.Document.Blocks.FirstBlock as Paragraph;    
p.LineHeight = 10;
于 2008-11-28T05:07:16.780 回答
17

关闭,所以你得到了积分。原来是设置边距,

p.Margin = new Thickness(0);
于 2008-11-28T05:31:08.713 回答
14

对我来说,WPF 中的 VS2017 可以这样工作:

 <RichTextBox HorizontalAlignment="Left" Height="126" Margin="10,280,0,0" VerticalAlignment="Top" Width="343" FontSize="14" Block.LineHeight="2"/>

关键是Block.LineHeight="2"

您也可以在“属性”视图中找到它,但不能从那里更改低于 6 像素。

于 2017-11-27T14:24:58.863 回答
4
RichTextBox rtb = new RichTextBox();
rtb.SetValue(Paragraph.LineHeightProperty, 1.0);
于 2016-11-28T23:31:02.640 回答
1
<RichTextBox  Height="250" Width="500" VerticalScrollBarVisibility="Auto" TextWrapping="Wrap" IsReadOnly="True" >
    <Paragraph>
        XYZ
        <LineBreak />
    </Paragraph>
</RichTextBox>
于 2010-05-06T13:25:22.227 回答
1

在 C# 2008 中

richtextbox1.SelectionCharOffset =
    -1 * ( Convert.ToInt32(R223.Txt_Space_Before.Text) * 100);

或者

richtextbox1.SelectionCharOffset =
    Convert.ToInt32(R223.Txt_Space_Before.Text) * 100;

可用于行间距。

这是获得行高间距的唯一方法。

于 2010-10-28T11:02:11.997 回答
0

我知道这个问题是在我开始编码之前发布的,但我发现只需设置ShowSelectedMargin就可以true

于 2020-07-28T16:17:47.120 回答