2010-05-30 46 views
0

我想創建一個UserControl,它會有一些行爲(動畫合攏...)和一些控件(Rectangle,Ellipse,主要用於設計目的)。用戶控件也是WPF中的網格

但是我需要它是一個有效的PanelGrid所以我可以在設計主窗口時加入更多的控件。在創建UserControl時,在主窗口設計時將添加到新的USerControl的控件不需要與添加到其中的組件進行交互。

我該怎麼做?我必須擴展Control嗎?我寧願只擴展UserControl

+0

我的這個問題不是很清楚,我知道。我會盡量在有空的時候重寫它。 – drasto 2010-05-30 22:54:31

回答

1

UserControl是一個ContentControl它有Content屬性,通常根據ContentTemplate顯示它。我要指出的是UserControl裏有1項。當然,您可以將Children屬性添加到您的UserControl,並在您的控制範圍內處理在子內容Grid中添加/刪除子項,但這不是內容控制的目的。

要舉辦很多項目,您應該使用Panel的子類,如您提到的Grid。所有面板都有Children屬性,並在其上排列了一系列元素。你可以繼承Grid並在那裏放置一些行爲。例如。你可以創建一個擴展屬性MyGrid.Collapsed,將它設置在網格中的元素上,以便它可以安排它們的位置。

另一種選擇是子類ItemsControl。放入其中的元素將根據其模板ItemsPanel顯示。這種方法還爲您提供了ItemsSource屬性的優勢,通過使用ItemTemplate屬性,可以使用它們生成元素來顯示任意數據類型的列表。