2012-03-27 15 views
7

Un cuadro de texto enriquecido pone más espacio entre las líneas cuando un usuario presiona enter o inserta texto, y eso es lo que intento evitar. Busqué y la única solución decente que encontré es esta:Espacio después de líneas nuevas en 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); 

Pero esto todavía no funciona. ¿Alguien tiene algún consejo para mí?

Respuesta

15

que tenían el mismo problema, y ​​lo solucioné modificando el Xaml de RichTextBox:

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

no sé cómo eso es diferente a la de seleccionar el estilo manualmente como lo hizo, pero para mí funcionó .

actualización: Para cambiar en el código, es necesario utilizar el tipo de destino como clave:

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

siento .. i didnt mencionar que Necesito hacerlo en el código y no en xaml. ¡pero tu solución funcionaría bien! – Jan

+0

Ok, encontré el problema. Actualizado mi respuesta. – Botz3000

0

lo hice con espesor propiedad

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