c# - 如何在WinForms中按下按钮来绘制图像?

标签 c# winforms image graphics drawing

我必须做这个编辑器(BPMN 编辑器),但我被卡住了。我在表单中有这个按钮,上面有一个图像,我想要这个:当我单击该按钮,然后在 Canvas 上按下单击时(绘图区域)将按钮中的图像放在那里。

最佳答案

public class Shape
{
    public float X { get; set; }
    public float Y { get; set; }
    public Image Image { get; set; }
}

和代码:

    private string _currentTool;
    private readonly List<Shape> _shapes;

    private void Button1Click(object sender, EventArgs e)
    {
        _currentTool = "img";
    }

    private void PictureBox1MouseDown(object sender, MouseEventArgs e)
    {
        switch (_currentTool)
        {
            case "img":
                _shapes.Add(new Shape {Image = button1.Image, X = e.X, Y = e.Y});
                pictureBox1.Invalidate();
                break;
        }
    }

    private void PictureBox1Paint(object sender, PaintEventArgs e)
    {
        foreach (var shape in _shapes)
        {
            e.Graphics.DrawImage(shape.Image, shape.X, shape.Y);
        }
    }

关于c# - 如何在WinForms中按下按钮来绘制图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4246195/

相关文章:

c# - 如何在 Unity 中全局为类创建别名?

c# - 返回(类型)实例或返回实例作为类型

c# - 将 LINQ 匿名类型转换为 IList<> 时出错

c# - 如何更改按下键盘按键时的 TrackBar 控件操作?

用于合并图像的 C++ 库

c# - 如何使用 DirectShow 过滤器将图像序列转换为视频?

java - 如何使用 Azure 在 Java 或 Android 中使用 Microsoft Translator API

winforms - 在 Windows 应用程序中调用 webservice

c# - 保持控件在窗体中的大小和位置

node.js - 如何将照片方向固定为 Angular