您可能希望考虑一个 ListView 控件,可能带有一个 Expander,如下所示:
<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>
这将根据需要调整到给定的最大值。如上所示,列表视图项可以包含任何类型的内容(不仅仅是文本)。您将需要了解一些有关样式和控制模板的知识。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 中单击鼠标右键,您将看到“添加新事物”菜单选择,左键单击它会在 ListView 中添加一个新的 ListViewItem(以编程方式)。