WPF добавляет фактическую строку в FlowDocument

Я создаю 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'

Как я могу это исправить?

1 ответ

Решение

Это должно быть возможно с BlockUIContainer,

Линия требует настройки X1, Y1 и X2, Y2. Я не думаю, что автоматическая ширина с NaN будет работать.

Возможно, вы захотите использовать Rectangle с Height = 1 (и опции 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);
Другие вопросы по тегам