所以我有一个分为两部分的应用程序 - 左边是自定义菜单,右边是一个包含所有“内容”(不同屏幕)的网格。
它看起来像这样:
此外,当点击不同的按钮时,左侧的菜单将填充不同的按钮(例如,如果您点击查看按钮,菜单将变为某些内容):
Start Date
End Date
Employee
Project
...
我很确定我希望每个屏幕(右侧)都是他们自己的用户控件。
但我的问题是:每个菜单都应该是用户控件吗?这使得使用它们变得有点困难。然后我不得不担心有getter / setter,所以主窗口可以听菜单的按钮等。
另一种选择是以编程方式在mainWindow中添加按钮,这样我就可以直接在mainWindow.cs中添加监听器(进入网格)
哪种方法比较好?或者还有另一种有利的方法吗?
答案 0 :(得分:1)
整个窗口可以轻松完成Grid
。
左侧可以使用按钮保持StackPanel
或其他布局控件。
您可以使用ContentPresenter
来保留右侧的内容。当您触发按钮时,只需更改绑定的内容,它将使用适当的用户控件进行更新。
答案 1 :(得分:0)
我认为你可以用网格来做,因为里德说。但是如果你需要在另一个地方重用它,我认为你应该使用一个单独的UserControl。
答案 2 :(得分:0)
也许我误解了你,但我会使用TabControl
和TabStripPlacement="Left"
。
如果您需要额外的空间来显示其他内容,您可以覆盖默认的TabControl ControlTemplate
并为TabPanel
内的ControlTemplate
添加一堆边距空间。或者,您可以在选择TabItem
标题时以不同方式显示{{1}}标题。