2012-03-27 39 views
7

Một RichTextBox đặt thêm khoảng trống giữa các dòng khi người dùng nhấn enter hoặc chèn văn bản và đó là những gì tôi đang cố thoát ra. Tôi tìm kiếm xung quanh và giải pháp duy nhất mà tôi tìm thấy là:Không gian sau dòng mới trong 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); 

Nhưng điều này vẫn không hiệu quả. Có ai có lời khuyên nào cho tôi không?

Trả lời

15

tôi đã cùng một vấn đề, và tôi giải quyết nó bằng cách sửa đổi XAML của RichTextBox:

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

Không biết làm thế nào mà khác với thiết lập phong cách tự như bạn đã làm, nhưng đối với tôi nó làm việc .

Cập nhật: Để thay đổi nó trong mã, bạn cần phải sử dụng các loại mục tiêu như chính:

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

xin lỗi .. i didnt đề cập rằng tôi cần phải làm điều đó trong mã và không phải trong xaml. nhưng giải pháp của bạn sẽ hoạt động tốt! – Jan

+0

Ok, đã tìm thấy sự cố. Đã cập nhật câu trả lời của tôi. – Botz3000

0

tôi đã làm nó với độ dày tài sản

my_paragraph.Margin = new System.Windows.Thickness(0); 
Các vấn đề liên quan