在.net中创建动态GUI的最佳方法是什么?

时间:2011-03-26 05:09:22

标签: c# xml xaml

我必须在.net中创建动态GUI。我的要求是在这个GUI中,GUI的某些部分将根据需求而改变,而有一部分将始终是通用的。创建这种动态GUI的最佳方法是什么?

3 个答案:

答案 0 :(得分:1)

我发现的最好方法是使用WPF和MVVM模式。这是一个模糊的答案,但怜悯,这是一个模糊的问题。

答案 1 :(得分:0)

具体技术将取决于您用于GUI的技术,正如其他人所指出的那样。没有具体信息,最好的办法就是 指定一般过程。

通常,您创建一个包含公共控件和内容的“主”表单,还包含一个空白面板,可以在其中添加特定内容。

在执行程序期间,用户将执行某些操作(单击按钮,从组合框中进行选择等),这将触发应用程序创建新的子表单并将其放入空白面板如上所述。

这是相对容易的部分。困难的部分是主要形式和植入的儿童形式之间的协调。他们共享菜单或工具栏吗?孩子是否必须与其父母或孩子的父母沟通?

我们需要更多关于您选择UI框架的详细信息,以便提供更多帮助。

答案 2 :(得分:0)

完全取决于动态UI是什么。有很多方法可以解决这个问题。以下是一些可以为您提供一些想法的示例:

如果它是真正的动态(例如数据驱动),因此每次生成UI时都会完全不同,那么一种非常简单的方法是根据数据创建控件(例如,跟踪Y坐标,每次都是需要一个新的控件,在该Y位置创建一个合适的类型,然后将控件的大小(加上一个间隙)添加到Y)。这基本上是Forms设计器生成的代码所做的,所以通过构建一些示例表单并查看生成的代码,很容易看到任意数量的示例。放置这些conrols的一个好方法是将它们放在UI表单中的专用Panel控件中 - 这样,只需移动面板,就可以在父表单中的任何位置移动动态UI。

如果它只是“半动态”,那么预定义的用户界面有一个固定的“池”,其中一个是根据(比如说当前选择)选择的,那么你可以构建一个用户控件类。这些UI“面板”中的每一个,然后(a)以编程方式从主窗体中添加/删除它们,或者(b)将所有主窗体添加到设计器中并以编程方式设置Visible = false或Visible = true以确保用户实际上一次只能看到一个面板。

您当然可以将这些“动态”面板嵌入到固定的UI中,这样您就可以自由地混合两种类型的UI元素。