是否存在某种用于设计和实现GUI的系统策略?
我正在使用Visual Studio在C#中创建GUI应用程序。工具箱是一个漂亮的组件面板,它使我可以轻松地将按钮和其他元素(为清楚起见,每当我表示“控件”,我都会说按钮)拖放到表单上,这使得静态表单非常容易做到。但是,我遇到两个问题: 首先创建按钮需要很多工作。当我使用的表单不是静态的时(即,根据用户的操作在运行时创建了按钮或其他控件),我根本无法使用调色板。相反,我必须通过使用我使用的任何方法调用构造函数来手动创建每个按钮,然后通过指定按钮的高度,宽度,位置,标签,事件处理程序等手动进行初始化。这非常繁琐,因为我必须猜测所有这些修饰参数,而又看不到表格的外观,而且每个按钮都会生成许多行重复的代码。 使按钮执行某些操作也是很多工作。在功能齐全的应用程序中处理事件是一个巨大的痛苦。我知道如何执行此操作的唯一方法是选择一个按钮,转到其属性中的“事件”选项卡,单击该OnClick事件,以使其在Form的代码中生成该事件,然后填写该事件的主体。由于我想分离逻辑和表示,因此所有事件处理程序最终都是对适当的业务逻辑功能的单行调用。但是,将它用于许多按钮(例如,想象像MS Word这样的应用程序中存在的按钮数目)会Form用数十种样板事件处理程序方法污染我的代码,并且很难维护。 因此,要让我真正使用任何比Hello World更复杂的GUI程序都是不切实际的。明确地说,在编写具有最小UI的程序中,处理复杂性没有任何问题-我觉得我能够使用具有相当能力的OOP来整齐地构造我的业务逻辑代码。但是在开发GUI时,我陷入了困境。似乎很乏味,以至于我感觉自己正在重新发明轮子,并且那里有一本书解释了如何正确地做GUI,而我还没有读过。 我想念什么吗?还是所有C#开发人员都只是接受无尽的重复事件处理程序和按钮创建代码列表? 作为一个(希望有帮助的)提示,我希望一个好的答案可以谈论: 使用OOP技术(例如工厂模式)简化重复按钮的创建 将许多事件处理程序组合到一个方法中,该方法检查Sender以找出哪个按钮调用了它,并相应地运行 XAML并使用WPF代替Windows窗体 你不需要有提,当然任何这些。关于我要寻找的答案,这只是我的最佳猜测。