我正在以编程方式创建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'
我该如何解决这个问题?
答案 0 :(得分:6)
应该可以使用BlockUIContainer
。
线路需要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);