Pergunta

Estou usando um RichTextBox no WPF e estou tentando definir o espaçamento padrão do parágrafo como 0 (para que não haja espaçamento de parágrafos). Embora eu pudesse fazer isso no XAML, gostaria de alcançá -lo programaticamente, se possível. Alguma ideia?

Foi útil?

Solução

eu fiz isso com estilo (trocadilho recuado)

<RichTextBox  Margin="0,51,0,0" Name="mainTextBox" >
        <RichTextBox.Resources>
            <Style TargetType="{x:Type Paragraph}">
                <Setter Property="Margin" Value="0"/>
            </Style>
        </RichTextBox.Resources>
    </RichTextBox>

Outras dicas

Usando altura da linha

RichTextBox rtb = new RichTextBox();    
Paragraph p = rtb.Document.Blocks.FirstBlock as Paragraph;    
p.LineHeight = 10;

Fechar, então você conseguiu os pontos. Na verdade, acabou sendo definindo a margem,

p.Margin = new Thickness(0);

Para mim, no vs2017, no WPF funciona o seguinte:

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

A chave é Block.lineHeight = "2"

Você pode encontrar isso também na visualização de propriedades, mas não pode mudar abaixo de 6px a partir daí.

RichTextBox rtb = new RichTextBox();
rtb.SetValue(Paragraph.LineHeightProperty, 1.0);

Em C# 2008 WAP

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

ou

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

pode ser usado para espaçamento de linha.

Esta é a única maneira de ter espaçamento da altura da linha.

<RichTextBox  Height="250" Width="500" VerticalScrollBarVisibility="Auto" TextWrapping="Wrap" IsReadOnly="True" >
    <Paragraph>
        XYZ
        <LineBreak />
    </Paragraph>
</RichTextBox>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top