我想創建一個UserControl
,它會有一些行爲(動畫合攏...)和一些控件(Rectangle
,Ellipse
,主要用於設計目的)。用戶控件也是WPF中的網格
但是我需要它是一個有效的Panel
像Grid
所以我可以在設計主窗口時加入更多的控件。在創建UserControl
時,在主窗口設計時將添加到新的USerControl
的控件不需要與添加到其中的組件進行交互。
我該怎麼做?我必須擴展Control
嗎?我寧願只擴展UserControl
。
我想創建一個UserControl
,它會有一些行爲(動畫合攏...)和一些控件(Rectangle
,Ellipse
,主要用於設計目的)。用戶控件也是WPF中的網格
但是我需要它是一個有效的Panel
像Grid
所以我可以在設計主窗口時加入更多的控件。在創建UserControl
時,在主窗口設計時將添加到新的USerControl
的控件不需要與添加到其中的組件進行交互。
我該怎麼做?我必須擴展Control
嗎?我寧願只擴展UserControl
。
我在看的是ContentPresenter
類與依賴屬性的組合。 更多關於主題here或here。或者試試this google search。
UserControl
是一個ContentControl
它有Content
屬性,通常根據ContentTemplate
顯示它。我要指出的是UserControl
裏有1項。當然,您可以將Children
屬性添加到您的UserControl
,並在您的控制範圍內處理在子內容Grid
中添加/刪除子項,但這不是內容控制的目的。
要舉辦很多項目,您應該使用Panel
的子類,如您提到的Grid
。所有面板都有Children
屬性,並在其上排列了一系列元素。你可以繼承Grid
並在那裏放置一些行爲。例如。你可以創建一個擴展屬性MyGrid.Collapsed
,將它設置在網格中的元素上,以便它可以安排它們的位置。
另一種選擇是子類ItemsControl
。放入其中的元素將根據其模板ItemsPanel
顯示。這種方法還爲您提供了ItemsSource
屬性的優勢,通過使用ItemTemplate
屬性,可以使用它們生成元素來顯示任意數據類型的列表。
我的這個問題不是很清楚,我知道。我會盡量在有空的時候重寫它。 – drasto 2010-05-30 22:54:31