我应该使用WPF用户控件吗?或者只是一个网格?

时间:2012-06-28 19:28:12

标签: c# wpf user-controls menu grid

所以我有一个分为两部分的应用程序 - 左边是自定义菜单,右边是一个包含所有“内容”(不同屏幕)的网格。

它看起来像这样:

enter image description here

此外,当点击不同的按钮时,左侧的菜单将填充不同的按钮(例如,如果您点击查看按钮,菜单将变为某些内容):

Start Date
End Date

Employee
Project
...

我很确定我希望每个屏幕(右侧)都是他们自己的用户控件。

但我的问题是:每个菜单都应该是用户控件吗?这使得使用它们变得有点困难。然后我不得不担心有getter / setter,所以主窗口可以听菜单的按钮等。

另一种选择是以编程方式在mainWindow中添加按钮,这样我就可以直接在mainWindow.cs中添加监听器(进入网格)

哪种方法比较好?或者还有另一种有利的方法吗?

3 个答案:

答案 0 :(得分:1)

整个窗口可以轻松完成Grid

左侧可以使用按钮保持StackPanel或其他布局控件。

您可以使用ContentPresenter来保留右侧的内容。当您触发按钮时,只需更改绑定的内容,它将使用适当的用户控件进行更新。

答案 1 :(得分:0)

我认为你可以用网格来做,因为里德说。但是如果你需要在另一个地方重用它,我认为你应该使用一个单独的UserControl。

答案 2 :(得分:0)

也许我误解了你,但我会使用TabControlTabStripPlacement="Left"

如果您需要额外的空间来显示其他内容,您可以覆盖默认的TabControl ControlTemplate并为TabPanel内的ControlTemplate添加一堆边距空间。或者,您可以在选择TabItem标题时以不同方式显示{{1}}标题。