如何在柔性网格中布置带箭头的线?

时间:2012-11-07 09:23:42

标签: wpf layout line

我的WPF窗口包含一个网格,它延伸到整个窗口宽度,并沿途布局一些控件。在这些控件中,应该在一端显示一些带箭头的线条,可以看到某种流动。这些线跨越多个网格列或行,并且每边都有一些边距,以使它们远离其他控件。多条线具有必须接触的某些连接点。现在,我只需要水平和垂直线。

我尝试使用Line控件,但这似乎需要两端的X和Y坐标,以像素为单位。这并不容易,因为当用户改变窗口大小时,线条可能会伸展。

接下来是Path控件,但我不知道如何在那里添加箭头。路径数据是“M0,0 L1,0”,Stretch =“Fill”,所以如果我在路径中画一个箭头,它也会拉伸,我不应该这样做。

有哪些替代方法可以伸展一条线而不是它上面的箭头?

1 个答案:

答案 0 :(得分:0)

滚动你自己的控制

public sealed class Arrow : FrameworkElement
{
    protected override void OnRender(DrawingContext drawingContext)
    {
       var width = ActualWidth;
       var height = ActualHeight;
       drawingContext.Draw...; // Draw you arrow line here
       drawingContext.Draw...; // Draw you arrow head here 
    }
}

当然,您可以向其添加各种依赖项属性,以控制箭头的绘制方式。