Wpf 如何在RichTextBox中包装文本?

Wpf 如何在RichTextBox中包装文本?,wpf,richtextbox,Wpf,Richtextbox,richtext框的宽度是固定的。我不想显示水平卷轴。我想用适当的文字包装来修复richtextbox中的内容 我有一个3行的文本框。文本包装设置为“包装” 但文本的包装方式如下所示: Amazing grace how sweet the sou nd That saved a wretch lik e me I once was lost but now found 但我想包装它的方式是: Amazing grace how sweet the sound That save

richtext框的宽度是固定的。我不想显示水平卷轴。我想用适当的文字包装来修复richtextbox中的内容

我有一个3行的文本框。文本包装设置为“包装” 但文本的包装方式如下所示:

Amazing grace how sweet the sou

nd

That saved a wretch lik

e me

I once was lost but now found
但我想包装它的方式是:

Amazing grace how sweet the 

sound

That saved a wretch

like me

I once was lost but now found
我如何做到这一点?我需要它将文本包装成多行,而不试图阻止单词拆分

编辑:这是XAML代码:

 <RichTextBox FontSize="60" IsReadOnly="True" x:Name="rtbText" BorderThickness="0" Background="Transparent" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="0,0,0,0" />

您的RichTextBox应该包含一个FlowDocument,文本将按照您的意愿进行包装

看看这个例子:

<Window x:Class="WpfApplication9.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525">
<Grid>
    <StackPanel Margin="0,0,331,0">
        <RichTextBox AcceptsReturn="True">
            <FlowDocument>
                <Paragraph>Amazing grace how sweet the sound</Paragraph>
            </FlowDocument>
        </RichTextBox>
        <RichTextBox AcceptsReturn="True">
            <FlowDocument>
                <Paragraph>That saved a wretch like me</Paragraph>
            </FlowDocument>
        </RichTextBox>
        <RichTextBox AcceptsReturn="True">
            <FlowDocument>
                <Paragraph>I once was lost but now found</Paragraph>
            </FlowDocument>
        </RichTextBox>
    </StackPanel>
</Grid>
试试这个

   <RichTextBox>
        <RichTextBox.Document>
            <FlowDocument>
                <Paragraph>
                    <TextBlock Foreground="Red" TextWrapping="Wrap" Text="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."></TextBlock>
                </Paragraph>
            </FlowDocument>
        </RichTextBox.Document>
    </RichTextBox>


我相当确定默认情况下已启用换行,您是否已禁用它?你能发布你的代码吗?RichTextBox甚至没有TextWrapping属性。发布一些代码对不起,没有文本包装设置。我已经添加了xaml代码。在运行时将flowdocument分配给richtextbox。我正在运行时将flowdocument分配给richtextbox。。。现在我该怎么办?代码是:rtbText.Document=fdsongs[0];这里是一个包含my flow文档的数组。rtbText.Document在运行时更改。流文档中有什么内容?它应该相当简单:你的RichTextBox.Document必须有一个FlowDocument,这个FlowDocument必须有一个段落,然后你在段落的内容中写下你的文本。如果您的段落内联中有TextBlock,请确保它的TextWrapping属性设置为Wrap。我的flow文档中有richtext内容。我正在将flowdocument分配给richtextbox文档。请告诉我如何将该段落添加到流程文档中?我已经在我的帖子中添加了一个编辑,展示了如何通过编程实现。
            TextBlock tb = new TextBlock();
            tb.TextWrapping = TextWrapping.Wrap;
            tb.Text = "This is a very long not so long text with multiple words";

            Paragraph p = new Paragraph();
            p.Inlines.Add(tb);

            FlowDocument fd = new FlowDocument();
            fd.Blocks.Add(p);

            rtbTest.Document = fd;
   <RichTextBox>
        <RichTextBox.Document>
            <FlowDocument>
                <Paragraph>
                    <TextBlock Foreground="Red" TextWrapping="Wrap" Text="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."></TextBlock>
                </Paragraph>
            </FlowDocument>
        </RichTextBox.Document>
    </RichTextBox>