2012-03-27 14 views
7

RichTextBox umieszcza dodatkową przestrzeń między liniami, gdy użytkownik naciśnie klawisze Enter lub wstawia tekst, i to właśnie próbuję uciec. Szukałem i jedyne godne rozwiązanie, jakie znalazłem, to:Przestrzeń po nowych liniach w 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); 

Ale to nadal nie działa. Czy ktoś ma jakieś wskazówki dla mnie?

Odpowiedz

15

miałem ten sam problem, a ja rozwiązać go modyfikując XAML z RichTextBox:

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

nie wiem jak to inaczej niż ustawieniu stylu ręcznie jak ty, ale dla mnie to działało .

Aktualizacja: Aby zmienić go w kodzie, należy użyć typu docelowego jako klucz:

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

przykro .. mi się nie wspomina, że Muszę to zrobić w kodzie, a nie w xaml. ale twoje rozwiązanie będzie działało dobrze! – Jan

+0

Ok, znalazłem problem. Zaktualizowałem moją odpowiedź. – Botz3000

0

Zrobiłem to z grubości własności

my_paragraph.Margin = new System.Windows.Thickness(0); 
Powiązane problemy