2009-09-02 12 views
18

Metin-Wrap devre dışı bırakın herkes bir RichTextBox metin kaydırma devre dışı biliyor mu? E.g. Pencereye sığmayan büyük bir dizem varsa, RichTextBox dizenin yeni bir satır gösterilemeyen kısmını yerleştirir. Bunu devre dışı bırakmak istiyorum (ve sadece Scrollbar'u kullanarak görünür hale getirin).C#/WPF: RichTextBox

Çok teşekkürler.

alkış

cevap

27

WPF bir RichTextBox basit bir FlowDocument için bir düzenleyicisidir. MSDN göre
:

Metin daima RichTextBox yılında tamamladı. Metin daha sonra sarmak FlowDocument için RichTextBox'un genişliğinden daha büyük üzerinde PageWidth ayarlamak istemiyorsanız edin. Ancak, sayfa genişliğine ulaşıldığında, metin hala devam eder.

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

sahip oluncaya temelde aynı istenen etkiyi sahip olacaktır: Açıkça bir RichTextBox kelime-sarma devre dışı bırakmak için hiçbir yolu yoktur iken

Yani, böyle bir şey yapabilirsiniz PageWidth'u aşan bir satır.

Not (Temmuz 2015 itibariyle): VS2015 RC, OP arzuladığı gibi tam olarak çalışmak için wordwrap = false sağlar. Visual Studio'nun daha önceki sürümlerinin de yaptığına inanıyorum.

+0

teşekkür ederiz! örneğin her bir "run" kontrol (yani sarma tabi sonra yatay Scroolbar her zaman görünür, çünkü ben (her nasılsa) tespit edilmesi üzerine bu set eğer iyi olurdu ... –

+6

gibi çalıştı [paragraf] genişlik veya bir şey) ve gerekmediğinde geri döndürün (yavaş olsa da her zaman kontrol etmek için metin değişimini izleme) – Elisabeth

+0

çözüm sevmiyorum bir çekicilik –

0

Ben de büyük bir dize görüntülemek için gerekli ve RichTextBox çalıştı ama ben sabit bir boyuta Belgenin PageWidth ayarı ile çözüm gibi değildi. Kaydırma çubuğu her zaman görünür olacak ve kaydırma alanı büyük olacaktır.

TextBlock yeterli ise onu kullanabilirsiniz ve bir ScrollViewer içine yerleştirebilirsiniz. RichTextBox'ın tüm ekstra özelliklerine ihtiyaç duymadığımdan bu benim için mükemmel çalıştı.

<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

'u bir TextBlock düzenleyemezsiniz, artı Zengin biçimlendirmeyi desteklemiyor sanmıyorum –

+1

@GeorgeBirbilis TextBlock düzenlenebilir değil, iç içe biçimlendirme etiketlerini kullanarak zengin biçimlendirmeyi destekler. Kalın, Köprü vb. – SepehrM

1

yatay kaydırma çubuğunu göstermek istemiyorsanız, ScrollViewer bir MinWidth zorlamak:

<RichTextBox ScrollViewer.HorizontalScrollBarVisibility="Hidden"> 

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

</RichTextBox>