Domanda

Sto utilizzando un RichTextBox in WPF e sto cercando di impostare la spaziatura di paragrafo predefinita su 0 (in modo che non vi siano spaziature di paragrafo). Mentre potrei farlo in XAML, vorrei raggiungerlo a livello di programmazione se possibile. Qualche idea?

È stato utile?

Soluzione

L'ho fatto con stile (gioco di parole)

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

Altri suggerimenti

Uso dell'altezza della linea

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

Chiudi, quindi ottieni i punti. In realtà si è scoperto che stava impostando il margine,

p.Margin = new Thickness(0);

Per me su VS2017 in WPF funziona così:

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

La chiave è Block.LineHeight="2"

Puoi trovarlo anche nella vista Proprietà ma non puoi cambiare sotto 6px da lì.

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

In 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;

può essere utilizzato per Interlinea.

Questo è l'unico modo in cui puoi avere la spaziatura dell'altezza della linea.

<RichTextBox  Height="250" Width="500" VerticalScrollBarVisibility="Auto" TextWrapping="Wrap" IsReadOnly="True" >
    <Paragraph>
        XYZ
        <LineBreak />
    </Paragraph>
</RichTextBox>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top