如何在C#代码中防止WPF FlowDocument的自动换行?

5
研究表明,在段落中避免换行的方法是:

点击这里了解详情。

<Paragraph>
    <TextBlock TextWrapping="NoWrap">unwrapping text</TextBlock>
</Paragraph>

我如何在C#代码中获得行为?

new Paragraph(new TextBlock()
{
    Text = "unwrapping text",
    TextWrapping = TextWrapping.NoWrap
});

当Paragraph的构造函数期望一个Inline时,产生了“无法将'System.Windows.Controls.TextBlock'转换为'System.Windows.Documents.Inline'”的错误。

我似乎找不到一种方法将TextBlock转换为Inline以使Paragraph满意。如果它在XAML中有效,那么肯定有某个转换器,对吧?我该如何找到它?

我意识到FlowDocument的重点是让内容自动换行并可调整大小等等。我正在编写一些简单的报告,只是一些包含数据的System.Windows.Documents.Table,不幸的是第一列需要自动换行的是日期,因此...

2013-04-24

变为

2013-04-
24

到目前为止,我一直在使用 Run ,虽然它们具有一些 TextBlock 属性,但它们没有提供 TextWrapping TextTrimming 的便利性。

1个回答

4
您想将TextBlock添加到内联中,构造函数不会为您完成此操作。我认为最简单的方法就是写下以下内容:
var p = new Paragraph();
p.Inlines.Add(new TextBlock()
{
    Text = "unwrapping text",
    TextWrapping = TextWrapping.NoWrap
});

请注意:当数据量很大时,这种方式可能并不适用... TextBlock 会使用户界面变慢。 - mahmoud nezar sarhan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接