2012-03-27 13 views
7

एक रिचटेक्स्टबॉक्स जब उपयोगकर्ता प्रवेश करता है या टेक्स्ट सम्मिलित करता है तो लाइनों के बीच अतिरिक्त जगह डालता है, और यही वह है जिसे मैं दूर करने की कोशिश कर रहा हूं। मैंने चारों ओर खोज की और मुझे मिला एकमात्र सभ्य समाधान यह है:रिचटेक्स्टबॉक्स में नई लाइनों के बाद स्पेस

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

लेकिन यह अभी भी काम नहीं करता है। क्या किसी के पास मेरे लिए कोई सुझाव है?

उत्तर

15

मैं एक ही समस्या थी, और मैं RichTextBox की Xaml संशोधित करके इसे हल:

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

कैसे उस शैली मैन्युअल की स्थापना की तरह तुमने किया था से अलग है पता नहीं है, लेकिन मेरे लिए यह काम किया ।

अद्यतन: कोड में परिवर्तन करने के लिए, आप कुंजी के रूप में लक्ष्य प्रकार का उपयोग करने की जरूरत है:

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

खेद .. मैं उल्लेख फ्लॉप के साथ यह किया है कि मुझे कोड में ऐसा करने की ज़रूरत है, न कि xaml में। लेकिन आपका समाधान ठीक काम करेगा! – Jan

+0

ठीक है, समस्या मिली। मेरा जवाब अपडेट किया गया। – Botz3000

0

मैं संपत्ति मोटाई

my_paragraph.Margin = new System.Windows.Thickness(0); 
संबंधित मुद्दे