WPF添加一个实际的行到FlowDocument

本文关键字:FlowDocument 一个 添加 WPF | 更新日期: 2023-09-27 18:14:16

我正在以编程方式创建一个FlowDocument。在这个FlowDocument中,我想添加一行来分割文本。不是新的一行文本,而是从左到右的一行。问题是FlowDocument的宽度是动态的,所以只是添加一个字符串"_"不是一个真正的选择。figure可以添加这样一行;

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'

我该如何解决这个问题?

WPF添加一个实际的行到FlowDocument

使用BlockUIContainer应该是可能的。

A Line需要X1, Y1和X2, Y2设置。我不认为自动宽度与NaN将工作。

你可能会想使用一个矩形的高度= 1(和拉伸选项)代替。

    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);