我正在研究开发一个GUI,它将根据所选组合框项的值切换控件。
我尝试在视觉工作室中为gui设计师添加不同的画布或网格,但由于设计师之间的所有内容都相互重叠而难以管理,因此很难知道它是什么。
有没有一种简单的方法可以做到这一点,是否有一个特定的控件使这很容易实现。我真的不想在c#中使用gui代码而不使用xaml。
我希望做的是所有控件都在自己的面板中,当组合框值更改时,一个面板被移除或隐藏,另一个面板被显示。
如何实现这样的目标。
感谢您提供的任何帮助
答案 0 :(得分:3)
您可以将每个不同的“模式”实现为单独的UserControl。
然后有一个带有组合框的shell,其中组合框OnChange将换掉UserControl插入shell的内容。
任何其他完全常见的组件,例如OK / cancel按钮都可以成为shell的一部分。
要考虑的一个完全替代的实现是一种选项卡式方法,但如果用户对其中的一些操作有意义,这可能只会过得很快。
如果用户在组合中选择A,在UserControlForA中进行更改,然后在组合中选择B,您会怎么做?可能是一个烦人的角落案例,如果这是生产代码,那么你将会得到未来用户请求改变它的工作方式。
如果你确定设计的话。如果没有,我会玩一些应用程序并尝试找到一个相同类型的好例子,并考虑他们如何接近它。
但是techwise我认为UserControl就是你所描述的。
(编辑:crud刚刚看到问题中的xaml / wpf,不确定在这种情况下这是否正确,在那里一无所知)
答案 1 :(得分:2)
您可以对每种不同的模式使用DataTemplate
。请参阅Different item template for each item in a WPF List for more information.