2009-09-02 13 views
18

क्या कोई जानता है कि मैं RichTextBox के टेक्स्ट रैपिंग को कैसे अक्षम कर सकता हूं? ईजी। अगर मेरे पास एक बड़ी स्ट्रिंग है जो विंडो में फिट नहीं है, तो RichTextBox स्ट्रिंग का हिस्सा रखता है जिसे एक नई लाइन के रूप में नहीं दिखाया जा सकता है। मैं इसे अक्षम करना चाहता हूं (और इसे केवल Scrollbar का उपयोग करके दृश्यमान बनाएं)।सी #/डब्ल्यूपीएफ: RichTextBox के पाठ-लपेट को अक्षम करें

बहुत बहुत धन्यवाद।

चीयर्स

उत्तर

27

WPF में एक RichTextBox बस एक FlowDocument के लिए एक संपादक है।
MSDN के अनुसार:

पाठ हमेशा एक RichTextBox में घूमती है। आप पाठ तो लपेट पर FlowDocument को RichTextBox की चौड़ाई से भी बड़ा PageWidth स्थापित करने के लिए नहीं करना चाहते हैं । हालांकि, एक बार पृष्ठ चौड़ाई पाठ तक पहुंच जाती है फिर भी लपेटती है।

richTextBox1.HorizontalScrollBarVisibility = ScrollBarVisibility.Visible; 
richTextBox1.Document.PageWidth = 1000; 

कौन मूलतः एक ही वांछित प्रभाव जब तक आपके पास होगा:

तो, वहाँ कोई रास्ता नहीं है, जबकि आप स्पष्ट रूप से एक RichTextBox के शब्द-रैपिंग को निष्क्रिय करने के लिए, आप कुछ इस तरह कर सकते हैं एक रेखा जो PageWidth से अधिक है।

नोट (जुलाई 2015 के रूप में): VS2015 आर सी ठीक काम करने के लिए के रूप में ओपी की इच्छा करने लगता है wordwrap = false अनुमति देता है। मेरा मानना ​​है कि विजुअल स्टूडियो के पहले संस्करण भी थे।

+0

धन्यवाद! एक आकर्षण की तरह काम किया –

+6

मुझे समाधान पसंद नहीं है क्योंकि क्षैतिज स्क्रोलबार हर समय दिखाई देता है ... – Elisabeth

+0

यह अच्छा होगा अगर आप इसे पहचानने पर सेट कर सकते हैं (किसी भी तरह) कि रैपिंग की आवश्यकता है (उदाहरण के लिए प्रत्येक "रन" [पैराग्राफ] चौड़ाई या कुछ) और आवश्यकता होने पर इसे वापस बंद करें (हर बार जांचने के लिए पाठ परिवर्तन की निगरानी करना, हालांकि यह धीमा हो सकता है) –

0

मुझे भी एक बड़ी स्ट्रिंग प्रदर्शित करने की आवश्यकता है और RichTextBox की कोशिश की लेकिन मुझे दस्तावेज़ के पेजविड्थ को एक निश्चित आकार में सेट करने के साथ समाधान पसंद नहीं आया। स्क्रॉलबार हर समय दिखाई देगा और स्क्रॉलिंग क्षेत्र बड़ा होगा।

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

<ScrollViewer Width="200" 
       Height="100" 
       HorizontalScrollBarVisibility="Auto" 
       VerticalScrollBarVisibility="Auto"> 
        <TextBlock TextWrapping="NoWrap"> 
         <TextBlock.Text> 
          Very long text Very long text Very long text 
         </TextBlock.Text> 
        </TextBlock> 
</ScrollViewer> 
+0

एक टेक्स्टब्लॉक संपादन योग्य नहीं है, प्लस मुझे नहीं लगता कि यह समृद्ध स्वरूपण का समर्थन करता है –

+1

@ जॉर्जबिरबिलिस टेक्स्टब्लॉक संपादन योग्य नहीं है लेकिन यह नेस्टेड स्वरूपण टैग का उपयोग करके समृद्ध स्वरूपण का समर्थन करता है। बोल्ड, हाइपरलिंक, आदि – SepehrM

1

आप क्षैतिज स्क्रॉलबार को दिखाने के लिए नहीं करना चाहते हैं, को लागू ScrollViewer पर एक MinWidth:

<RichTextBox ScrollViewer.HorizontalScrollBarVisibility="Hidden"> 

    <RichTextBox.Resources> 
     <Style TargetType="ScrollViewer"> 
      <Setter Property="MinWidth" Value="2000" /> 
     </Style> 
    </RichTextBox.Resources> 

</RichTextBox> 
संबंधित मुद्दे