2010-06-21 88 views
2

我創建了一個C# - Silverlight 4應用程序,該應用程序由一些由LineArrow對象直觀連接的用戶控件組成。 UserControls(以及LineArrows)也被動態添加到Code-behind中的Canvas中。在Silverlight 4中動態添加用戶控件的綁定

我想將LineArrow的Canvas.LeftProperty,Canvas.TopProperty,Width和Height綁定到此LineArrow所連接的兩個UserControl,以便這些屬性根據兩個連接的UserControl的位置而變化。

我用LineArrow的Binding - object和SetBinding方法弄了一會兒,但還沒有成功。也許這裏有人能給我一個小例子,如何實現這種約束?

LineArrow的左上角應位於第一個UserControl的中心,並且位於第二個UserControl的頂部中心的右下角。

由於提前, 弗蘭克

回答

2
control1.SetBinding(Canvas.Top, 
    new Binding { Source = lineArrow, Path = "(Canvas.Top)", Converter = new AdjustPositionConverter() }; 

轉換隻是我編了一個名字。您可能需要編寫一個轉換器來轉換位置,使其正確排列到您想要的位置,但這種綁定應該是一個好的開始。

+0

非常感謝!你的方法有效。 – Aaginor 2010-06-24 12:40:05