2009-11-03 44 views
3

據我所知,面板並不意味着有任何可見的「鑲邊」。 StackPanel,Grid和Canvas沒有任何可見元素(除了網格線,他們認爲這些網格線只用於調試佈局)。將可見元素添加到Silverlight 3中的自定義面板中

在我的示例中,我將創建一個使用「附加」佈置其子控件的屬性。但是,我希望我的自定義面板在後臺呈現可見的「網格」。網格的外觀(大小和位置)將取決於子元素的大小和位置。

有什麼辦法可以達到這個目的?作爲Silverlight和XAML的新手,我的第一個猜想是創建一個自定義控件,其中包含我的自定義面板佈局。

我想我可以找出具體的代碼,但是我需要指出正確的方向,哪些構建塊適合這種情況。

回答

2

你是正確的定製面板不能顯示任何額外的鉻;他們只能顯示他們的子女(網格是個例外)。

要做你想做的事,你可能創建一個自定義的面板,只是增加額外的孩子來顯示鉻。雖然這不是一個好設計(因爲Panel的用戶會在Children集合中看到這些額外的項目)。

最好的想法是做你所說的:創建一個暴露兒童屬性的自定義控件。此控件可以在內部使用私人自定義面板來佈置這些元素(例如TabControl使用特殊的TabPanel來佈置標籤)。在Controls默認模板中,您可能希望將Panels的Children屬性上的TemplateBinding用於Control的Children屬性。

相關問題