2012-11-07 45 views
0

我的WPF窗口包含一個可以延伸到整個窗口寬度的網格,並且佈局了一些控件。在這些控件中,應該在一端顯示一些帶箭頭的線條,用於顯示某種流動。這些線跨越多個網格列或行,並且對每個邊都有一定的餘量,以使它們遠離其他控件。多條線具有必須接觸的特定連接點。現在,我只需要水平線和垂直線。如何在柔性網格中用箭頭佈局線條?

我試過使用Line控件,但似乎需要兩端的X和Y座標,以像素爲單位。這並不容易,因爲隨着用戶更改窗口大小,該行可能會延長。

接下來是Path控件,但我不知道如何在那裏添加箭頭。 Path數據是「M0,0 L1,0」,Stretch =「Fill」,所以如果我在路徑中畫一個箭頭,它也會伸展,我不應該這樣做。

還有什麼替代方法可以拉伸線條,但不是箭頭嗎?

回答

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 
    } 
} 

當然,你可以添加各種依賴屬性給它以控制您的箭頭的繪製。

+0

經過一番搜索之後,似乎我被圖形編輯器應用程序誤認爲可以輕鬆地將箭頭添加到WPF行中,但似乎並非如此。這是一個很好的解決方案,它實現了一個自定義控件:http://blogs.msdn.com/b/mrochon/archive/2011/01/10/custom-line-caps-in-wpf.aspx我已經添加了一個子類它更容易管理箭頭的長度和寬度。在XAML中的所有聲明標記之後,我忘記了您也可以像在Windows窗體中那樣按需繪製顏色... – ygoe