2012-03-27 11 views
7

Un oggetto RichTextBox consente di aggiungere ulteriore spazio tra le righe quando un utente preme Invio o inserisce testo, ed è quello che sto cercando di evitare. Ho cercato in giro e l'unica soluzione decente che ho trovato è questo:Spazio dopo nuove righe in RichTextBox

Setter SetParagraphMargin = new Setter(); 
SetParagraphMargin.Property = Paragraph.MarginProperty; 
SetParagraphMargin.Value = new Thickness(0); 

Style style = new Style(); 
style.TargetType = typeof(Paragraph); 
style.Setters.Add(SetParagraphMargin); 

rtb.Resources.Add("Style", style); 

Ma questo ancora non funziona. Qualcuno ha qualche consiglio per me?

risposta

15

Ho avuto lo stesso problema e ho risolto modificando il Xaml del RichTextBox:

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

Non so come questo è diverso da quello di impostare manualmente lo stile come avete fatto, ma per me ha funzionato .

Aggiornamento: per modificare nel codice, è necessario utilizzare il tipo di destinazione come chiave:

Style noSpaceStyle = new Style(typeof(Paragraph)); 
noSpaceStyle.Setters.Add(new Setter(Paragraph.MarginProperty, new Thickness(0))); 
rtb.Resources.Add(typeof(Paragraph), noSpaceStyle); 
+0

sorry .. i didnt menzione che ho bisogno di farlo nel codice e non in xaml. ma la tua soluzione funzionerebbe bene! – Jan

+0

Ok, ho trovato il problema. Aggiornato la mia risposta. – Botz3000

0

ho fatto con spessore di proprietà

my_paragraph.Margin = new System.Windows.Thickness(0);