您不妨考慮ListView控件,或許與膨脹,是這樣的:
<Canvas>
<Expander Header="Stuff"
MaxHeight="900"
Canvas.Left="202"
Canvas.Top="110">
<ListView Name="MyListView">
<ListView.ContextMenu>
<ContextMenu>
<MenuItem Header="Add new thing"
Click="MenuItem_Click" />
</ContextMenu>
</ListView.ContextMenu>
<ListViewItem>
<StackPanel Orientation="Horizontal">
<Label>Name</Label>
<TextBox Text="Value" />
</StackPanel>
</ListViewItem>
<ListViewItem>Item two</ListViewItem>
<ListViewItem>Item three</ListViewItem>
</ListView>
</Expander>
</Canvas>
這將大小根據需要最多給予最大。列表視圖項目可以包含任何類型的內容(不只是文本),如上所示。你會想了解一下Style和Control模板。 WPF有一個相當陡峭的學習曲線恕我直言,但網上有很多的學習資源。祝你好運。
爲了迴應您的評論,我添加了其他信息。
任何你可以在XAML中做的事情都可以在代碼後面做(大多數XAML只是調用框架對象)。在這種情況下,我向ListView控件添加了一個上下文菜單。該菜單包含一個項目「添加新物品」。這個項目有一個Click事件,它綁定到後面代碼中的MenuItem_Click方法。然後我加入這個方法的代碼:
void MenuItem_Click(object sender, RoutedEventArgs e) {
var lvi = new ListViewItem();
lvi.Content = String.Format("New thing {0}", DateTime.Now);
MyListView.Items.Add(lvi);
}
現在,如果你正好在ListView中單擊您將看到「添加新的東西」菜單選擇,左擊它增加了一個新的ListViewItem到ListView中(編程)。
你可能想檢查[我的例子](http://stackoverflow.com/questions/15819318/how-to-create-and-connect-custom-user-buttons-controls-with-lines-using-windows/15821573#15821573)的一個類似的事情。 –
我喜歡你的例子,我開始認爲我應該使用組合框,然後在其中包含一些列表視圖,其中包含必要的屬性,屬性等.. :) –