【问题标题】:WPF add an actual line to a FlowDocumentWPF 将实际行添加到 FlowDocument
【发布时间】:2014-07-22 16:10:54
【问题描述】:

我正在以编程方式创建 FlowDocument。在这个 FlowDocument 中,我想添加一行来分解文本。不是新的文本行,而是从左到右的一行。问题是 FlowDocument 宽度是动态的,因此仅添加“_”字符串并不是一个真正的选择。想办法可以加一行这样的;

Line l = new Line();
l.Margin = new Thickness(3);
l.Height = 2;
l.Width = double.NaN;
FlowDocument doc = new FlowDocument();
doc.Blocks.Add(l);

问题是doc.Blocks.Add(l);返回这个错误;

cannot convert from 'System.Windows.Shapes.Line' to 'System.Windows.Documents.Block'

我该如何解决这个问题?

【问题讨论】:

    标签: c# wpf flowdocument


    【解决方案1】:

    BlockUIContainer 应该可以。

    一条线需要 X1、Y1 和 X2、Y2 设置。我不认为 N​​aN 的自动宽度会起作用。

    您可能希望改用 Height = 1 的 Rectangle(和 Stretch 选项)。

        var separator = new Rectangle();
        separator.Stroke = new SolidColorBrush(Colors.Blue);
        separator.StrokeThickness = 3;
        separator.Height = 3;
        separator.Width = double.NaN;
    
        var lineBlock = new BlockUIContainer(separator);       
        myFlowDocument.Blocks.Add(lineBlock);
    

    【讨论】:

    • 谢谢!此外,标准分隔符可用于此目的,使其成为单线:myFlowDocument.Blocks.Add(new BlockUIContainer(new Separator()));
    猜你喜欢
    • 2011-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-25
    • 2011-04-09
    相关资源
    最近更新 更多