【问题标题】:Nodes in Windows FormsWindows 窗体中的节点
【发布时间】: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 发送信号,该信号会向下一个节点发送信号以启动或重置等。

标签: c# .net winforms


【解决方案1】:

我认为您应该使用 WPF 来获取基于节点的 UI。我在 WPF 中开发了一个具有这种界面的程序,并且非常简单(我没有任何 WPF 经验):

您可以使用网格、边框、堆栈面板、停靠面板、路径等创建几乎所有您想要的布局。

【讨论】:

    猜你喜欢
    • 2016-10-21
    • 2010-10-22
    • 1970-01-01
    • 2010-12-30
    • 1970-01-01
    • 1970-01-01
    • 2010-10-18
    • 2017-02-16
    • 1970-01-01
    相关资源
    最近更新 更多