Pregunta

Estoy usando un RichTextBox en WPF, y estoy tratando de establecer el espaciado de párrafo predeterminado en 0 (para que no haya espaciado de párrafo). Si bien podría hacer esto en XAML, me gustaría lograrlo mediante programación si es posible. ¿Alguna idea?

¿Fue útil?

Solución

Lo hice con estilo (juego de palabras con sangría)

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

Otros consejos

Uso de altura de línea

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

Cierra, así que tienes los puntos. En realidad resultó establecer el margen,

p.Margin = new Thickness(0);

Para mí en VS2017 en WPF funciona esto:

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

La clave es Block.LineHeight="2"

También puede encontrar esto en la vista Propiedades pero no puede cambiar por debajo de 6px desde allí.

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

En C # 2008 WAP

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

o

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

se puede usar para Espaciado de línea.

Esta es la única forma en que puede tener un espaciado de altura de línea.

<RichTextBox  Height="250" Width="500" VerticalScrollBarVisibility="Auto" TextWrapping="Wrap" IsReadOnly="True" >
    <Paragraph>
        XYZ
        <LineBreak />
    </Paragraph>
</RichTextBox>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top