2012-02-28 45 views
0

我試圖原型的GUI創建具有不同的視覺特性相同的控制的多個實例,並使用表達混合4.經由代碼隱藏在WPF

我有一個主窗口(XAML創建一個最小化WPF項目+代碼隱藏)與一個UserControl的八個實例分開定義(XAML +代碼隱藏)。這個用戶控件有一些容器和形狀,我希望在主窗口中的每個實例具有不同的外觀。

這個想法是揭露這種控制的一些性質,並把它們作爲參數。然後,我可以使用後面的代碼填充主窗口,並且可以爲每個實例添加一些硬編碼參數。例如,在僞代碼:

first = new mycontrol; 
mainwindow.maincontanier.add(first); 
first.leftpanel.width = 100; 
first.rightpanel.background = Gray; 

second = new mycontrol; 
mainwindow.maincontainer.add(second); 
second.leftpanel.smalldot.stroke = Red; 
second.leftpanel.insideborder.thickness = 2; 

etc. 

的問題是:我不知道這是怎麼做平時,所以我很感謝任何建議,特別是在最低限度工作代碼塊的形式。

只是要記住,我這樣做只是作爲一個設計研究,這樣我就可以比較不同的控制可能的視覺狀態。我不是C#程序員,也沒有涉及任何其他的GUI功能。

回答

1

如果你問如何以編程方式添加項目:

//get mainwindow 
Window main = App.Current.MainWindow; 
myControl c1 = new myControl(); 
//change properties 
myControl c2 = new myControl(); 
//change properties 

//choose a container you want 
StackPanel s = new StackPanel(); 

//add objects to container 
s.Children.Add(c1); 
s.Children.Add(c2); 

//make container as your main content 
main.Content = s; 
+0

我會嘗試使用它,但我應該在哪裏編寫此代碼?在MainWindow.cs中?或另一個文件? – heltonbiker 2012-02-28 19:12:56

+0

如果您在Loaded事件中編寫,這會更好。在MainWindos.cs中,在InitializeComponent()之後;行,輸入:「this.Loaded + =」,然後按「標籤」2次。它會創建一個方法。用這種方法編寫你的代碼。 – Onur 2012-02-28 19:29:18

+0

它的工作。現在我要爲@NestorArturo提供關於如何公開usercontrol屬性並填充「更改屬性」部分的建議。 – heltonbiker 2012-02-28 19:36:02

1

首先,你需要了解一些C#來做到這一點。其次,您的控件可以暴露映射到內部外觀屬性的屬性,因此當用戶更改它們時,您可以更改控件中的等效內容。