【发布时间】:2016-11-29 12:34:15
【问题描述】:
所以我有 C++ 方面的经验,现在我在 C# .NET 中使用 Windows 窗体。我知道如何创建一个可以用作新窗口的新表单。而且您还可以创建用户控件、组件或普通类。
现在我用 C++ 制作了一个应用程序,但我想将它转换为 C# .NET。在 C++ 中,我自己制作了整个 gui。但我现在想在 C# .NET 中进行练习。
在该应用程序中,用户可以创建节点(就像您可以在蓝图中的虚幻引擎 4 中一样,参见示例图片)
现在我不确定在 Windows 窗体中执行此操作的最佳方法是什么。
制作新表格似乎不是正确的方法。因为节点必须在主屏幕内。你应该能够移动保存节点的网格。所以节点不应该能够退出持有它们的主屏幕。
自己在课堂上从头开始创建它会更好吗?或者我可以通过用户控件或组件类来实现这一点吗?我不明白这些类的最佳用途是什么以及它们的用途。
【问题讨论】:
-
对于这样的事情,我建议你使用WPF 而不是Winforms。
-
所以您希望“节点”可以移动?你打算如何做连接线。 Imo 他们是最难的 psrt.. 是的,我建议添加一个“UserControl 节点”,将其添加到双缓冲面板子类中。-是的,对于 winforms 来说,这看起来有点牵强。
-
公平的解释,但仍然过于宽泛。您可以使用
UserControl或自定义类。在最简单的方法中,它可能只是一个控件,它将绘制所有内容(我想这是最接近您在 C++ 中的操作方式)、处理鼠标事件(移动子项)等。为什么 winforms 顺便说一句? 2016 年已经过时了。 -
嗯,谢谢,我会研究 WPF,听起来很有希望。 @TaW在C ++中,我可以通过渲染引用了它们连接到的节点的贝塞尔线来创建这条线。因此,当 1 个节点完成时,它会向 bezierline 发送信号,该信号会向下一个节点发送信号以启动或重置等。