简体   繁体   中英

How can I prevent wrapping in a WPF FlowDocument in C# code?

Studies have shown this is the way to prevent wrapping in, say, a Paragraph:

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

How can I get the behavior in C# code?

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

Yields cannot convert from 'System.Windows.Controls.TextBlock' to 'System.Windows.Documents.Inline' because Paragraph's constructor is expecting an Inline.

I can't seem to find a way to convert a TextBlock to an Inline to make Paragraph happy. If it works in XAML, there should be a converter somewhere, right? How do I find it?

I realize the point of a FlowDocument is for things to wrap and flow and be re-sizable, etc. I'm writing some simple reports, just some System.Windows.Documents.Table s of data, and unfortunately the first column that wraps is one which contains dates, so

2013-04-24

Becomes

2013-04-
24

I've been using Run s so far, and while they have some TextBlock properties, they offer no TextWrapping or TextTrimming affordances.

You want to add the TextBlock to the inlines, the constructor won't do it for you. I think it would be easiest to just write:

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM