2014-07-22 2 views
2

프로그래밍 방식으로 FlowDocument를 만듭니다. 이 FlowDocument에서 텍스트를 구분하는 선을 추가하고 싶습니다. 텍스트의 새로운 줄이 아니라 왼쪽에서 오른쪽으로가는 줄. 문제는 FlowDocument 너비가 동적이어서 "_"문자열을 추가하는 것이 실제로 옵션이 아니라는 것입니다. 피규어는 다음과 같은 라인을 추가 할 수 있습니다.WPF 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' 

어떻게 해결할 수 있습니까?

답변

5

BlockUIContainer으로 가능해야합니다.

라인에는 X1, Y1 및 X2, Y2 설정이 필요합니다. NaN으로 자동 너비가 작동한다고 생각하지 않습니다.

Height = 1 (및 Stretch 옵션)이있는 Rectangle을 사용하는 것이 좋습니다.

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

감사합니다. 또한 표준 분리자는이 목적을 위해 사용되어 하나의 라이너가됩니다 :'myFlowDocument.Blocks.Add (new BlockUIContainer (new Separator()));' – Zeus

관련 문제