【发布时间】:2010-09-24 09:58:10
【问题描述】:
我在 WPF 中使用 RichTextBox,并尝试将默认段落间距设置为 0(这样就没有段落间距)。虽然我可以在 XAML 中做到这一点,但如果可能的话,我想以编程方式实现它。有什么想法吗?
【问题讨论】:
标签: wpf richtextbox
我在 WPF 中使用 RichTextBox,并尝试将默认段落间距设置为 0(这样就没有段落间距)。虽然我可以在 XAML 中做到这一点,但如果可能的话,我想以编程方式实现它。有什么想法吗?
【问题讨论】:
标签: wpf richtextbox
我知道这个问题是在我开始编码之前发布的,但我发现只需将 ShowSelectedMargin 设置为 true 就可以了
【讨论】:
对我来说,在 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 像素。
【讨论】:
Paragraph继承Block确定段落有多行时基线之间的垂直距离。它间接地改变了段落前后的空格(问题),但这不是解决方案。而Paragraph.Margin只能调整段落前后的空格。
RichTextBox rtb = new RichTextBox();
rtb.SetValue(Paragraph.LineHeightProperty, 1.0);
【讨论】:
AppenText 中的每行之间有另一行空格...
<RichTextBox Height="250" Width="500" VerticalScrollBarVisibility="Auto" TextWrapping="Wrap" IsReadOnly="True" >
<Paragraph>
XYZ
<LineBreak />
</Paragraph>
</RichTextBox>
【讨论】:
在 C# 2008 WAP 中
richtextbox1.SelectionCharOffset =
-1 * ( Convert.ToInt32(R223.Txt_Space_Before.Text) * 100);
或
richtextbox1.SelectionCharOffset =
Convert.ToInt32(R223.Txt_Space_Before.Text) * 100;
可用于行间距。
这是获得行高间距的唯一方法。
【讨论】:
我做到了风格(双关语缩进)
<RichTextBox Margin="0,51,0,0" Name="mainTextBox" >
<RichTextBox.Resources>
<Style TargetType="{x:Type Paragraph}">
<Setter Property="Margin" Value="0"/>
</Style>
</RichTextBox.Resources>
</RichTextBox>
【讨论】:
<LineBreak/> ...
关闭,所以你得到了积分。原来是设置margin,
p.Margin = new Thickness(0);
【讨论】:
使用行高
RichTextBox rtb = new RichTextBox();
Paragraph p = rtb.Document.Blocks.FirstBlock as Paragraph;
p.LineHeight = 10;
【讨论】:
p.Margin 而不是p.LineHeight