c# - 如何在 C# 中制作自定义 gui

标签 c# user-interface

我有兴趣在 C# 中制作自定义图形用户界面,并且我想要一些关于如何最好地实现它的建议。所附图片通常是我想要创建的 - 即绘制文本、框/背景、图片、线条、圆圈和其他 gui 元素(如文本输入字段等)。

我真的不知道从哪里开始,我从谷歌搜索中得到的结果是 GDI+ 和使用 paint 事件可能能够完成我正在寻找的事情 - 但我不知道是否是做这样的事情的方法,或者它是否是错误的工作工具(也就是与其他东西相比它很慢/无效)。

//something along the lines of this: 
private void Form1_Paint(object sender, PaintEventArgs e)
{
    System.Drawing.Graphics graphicsObj;

    graphicsObj = this.CreateGraphics();

    Pen myPen = new Pen(System.Drawing.Color.Red, 5);

    Rectangle myRectangle = new Rectangle(20, 20, 250, 200);

    graphicsObj.DrawRectangle(myPen, myRectangle);
}

谢谢你的时间,如果我说错了,请原谅我;我什至很难向谷歌描述我想做什么 --- 所以非常感谢你的帮助!!!!

A cool looking node based GUI thing from 3ds max

最佳答案

WPF你的选择?我会根据您提供的屏幕截图推荐它。这种桌面 GUI 技术比 WinForms 更适合,因为您的代码示例表明您正在使用。

  • 通过我提供的链接学习 WPF 和 XAML 的基础知识。
  • 然后了解 Canvas面板
  • 那我建议你了解Templates

好吧,这应该让你继续。如果您有任何具体问题,我相信我们 SO 很乐意为您提供帮助。

更新 Items 控件中的 Canvas 面板示例:https://dannyvanderkraan.wordpress.com/2015/02/12/wpf-listbox-with-arbitrary-positioning-and-custom-shaped-items/

关于c# - 如何在 C# 中制作自定义 gui,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36737552/

相关文章:

C# 乘以包含 Random.next 实例的方法

c# - 如何显示(或写入文件)希腊字符?

matlab - 如何在 MATLAB 中编写 GUI?

user-interface - 跨线程的Qt信号,一个是GUI线程?

python - QThread 到 QProcesses 的信号/槽

android - 为对话框设置 "dim"颜色

c# - 在 Dynamic LINQ to Entities 中使用 DateTime

c# - 对 I/O 绑定(bind)操作使用异步函数

c# - SEO标题制作功能?

javascript - 您认为可以将哪些想法应用到这个 GUI 中,使其更适合真人使用?