首页 > 其他分享 >Winform下的画板

Winform下的画板

时间:2024-09-05 22:51:48浏览次数:4  
标签:10 200 画板 new 100 rect Winform

1. Winform如何实现简单绘图

  • 如果想要自己画一个圆,矩形或者其他图形,可以使用控件或窗体自带的Paint事件,在事件中引用Graphics对象;
  • 也可以使用某个窗体或者控件的CreateGraphics方法
  • 需要引用using System.Drawing.Drawing2D;(要画3D就用DirectX)

2. 使用Form1窗体Paint事件

  • 步骤:
    • 先画一个画板 Graphics g = e.Graphics;
    • 再拿一支笔Pen p = new Pen(Color.Blue, 2);
    • 然后就可以开始画画了,代码及效果如下:
 private void Form1_Paint(object sender, PaintEventArgs e)
        {
            //创建一个winform提供的画板
            Graphics g = e.Graphics;

            //需要一支笔
            Pen p = new Pen(Color.Blue, 2);

            //开始画画
            g.DrawLine(p, 10, 10, 100, 100);//在画板上画直线,起始坐标为(10,10),终点坐标为(100,100)
            g.DrawRectangle(p, 10, 10, 100, 100);//在画板上画矩形,起始坐标为(10,10),宽为100,高为100
            g.DrawEllipse(p, 10, 10, 100, 100);//在画板上画圆,起始坐标为(10,10),外接矩形的宽为100,高为100
        }

3.使用CreateGraphics方法

  • 在按钮的Click事件中做一个画板,使用CreateGraphics方法,代码及效果如下:
 private void button1_Click(object sender, EventArgs e)
        {
            Pen p = new Pen(Color.Blue, 5);//设置笔的粗细为,颜色为蓝色
            Graphics g = this.CreateGraphics();

            //画虚线
            p.DashStyle = DashStyle.Dot;//定义虚线的样式为点
            g.DrawLine(p, 10, 200, 200, 200);

            //自定义虚线
            p.DashPattern = new float[] { 2, 1 };//设置短划线和空白部分的数组
            g.DrawLine(p, 10, 210, 200, 210);

            //画箭头,只对不封闭曲线有用
            p.DashStyle = DashStyle.Solid;//恢复实线
            p.EndCap = LineCap.ArrowAnchor;//定义线尾的样式为箭头
            g.DrawLine(p, 10, 220, 200, 220);

            //g.Dispose();
            //p.Dispose();

            Rectangle rect = new Rectangle(300, 10, 50, 50);//定义矩形,参数为起点横纵坐标以及其长和宽
            //单色填充
            SolidBrush b1 = new SolidBrush(Color.Blue);//定义单色画刷          
            g.FillRectangle(b1, rect);//填充这个矩形

            //字符串
            g.DrawString("字符串", new Font("宋体", 10), b1, new PointF(390, 10));

            //用图片填充
            TextureBrush b2 = new TextureBrush(Image.FromFile(@"C:\Users\xiaocuncun\Desktop\屏幕截图 2024-09-05 222652.png"));
            rect.Location = new Point(300, 70);//更改这个矩形的起点坐标
            rect.Width = 200;//更改这个矩形的宽来
            rect.Height = 200;//更改这个矩形的高
            g.FillRectangle(b2, rect);

            //用渐变色填充
            rect.Location = new Point(300, 290);
            LinearGradientBrush b3 = new LinearGradientBrush(rect, Color.Yellow, Color.Black, LinearGradientMode.Horizontal);
            g.FillRectangle(b3, rect);
        }

标签:10,200,画板,new,100,rect,Winform
From: https://www.cnblogs.com/xiacuncun/p/18399364

相关文章

  • C# winform 定义Fn快捷键
    1、在窗体的LOAD事件中,将KeyPreview设为True;2、在窗体的KeyDown事件中,写入如下代码:privatevoidForm1_KeyDown(objectsender,KeyEventArgse){//单键switch(e.KeyCode){caseKeys......
  • DevExpress WinForms v24.1亮点- TreeList、折叠组件全新升级
    DevExpressWinForms拥有180+组件和UI库,能为WindowsForms平台创建具有影响力的业务解决方案。DevExpressWinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!DevExpressWinForms控件2024年第一个重大版本......
  • DevExpress WinForms中文教程:Data Grid - 如何自定义绘制?
    在本教程中,您将学习如何使用DevExpressgridView(网格视图)的CustomDraw…事件,您将从一个显示普通任务数据的网格开始。首先使用事件来自定义单元格外观,然后修改相同的事件处理程序,来根据网格数据更改单个单元格中显示的文本。接下来将进一步扩展处理程序来在特定单元格中绘制图像,......
  • winform实时获取系统dpi
    环境:window10框架:4.5.2由于windows10的DPI设置无法直接获取屏幕的真实长宽获取长宽代码intiH=Screen.PrimaryScreen.Bounds.Height;intiW=Screen.PrimaryScreen.Bounds.Width;两种方法:1、使用上边代码获取缩放后的长宽iH*DPI(1.25)=真实高度DPI获取方法:#reg......
  • 解决WinForm程序在高DPI屏幕下界面缩放错误
    在高DPI设置下,WinForm应用程序的界面可能会出现扭曲或缩放不正确的问题。这是因为默认情况下,WinForm的布局和控件尺寸是基于标准DPI设计的,当在高DPI环境下运行时,界面可能会被强制缩放,导致控件排列不正确或模糊。要解决这个问题,你可以尝试以下几种方法:1.启用DPI感知(DPI......
  • Winform点击按钮Panle切换页面的实现
    一、项目结构二、主界面Main.csPanelName:panel1 三、代码实现namespace测试窗口切换{publicpartialclassMain:Form{//先定义对应的私有字段privateCmmPage_cmmPage;privateTwoPage_twoPage;publicMain()......
  • DevExpress WinForms v24.1亮点- TreeList、折叠组件全新升级
    DevExpressWinForms拥有180+组件和UI库,能为WindowsForms平台创建具有影响力的业务解决方案。DevExpressWinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!DevExpressWinForms控件2024年第一个重大版本——......
  • c# 笔记 winform添加右键菜单,获取文件大小 ,多条件排序OrderBy、ThenBy,list<double>截取
    Winform右键菜单‌要在C#Winform应用程序中添加右键菜单,‌你可以按照以下步骤操作:‌1.‌创建菜单项‌在Form的构造函数或加载事件中,‌创建ContextMenuStrip控件的实例,‌并为其添加菜单项。‌2.‌绑定到控件‌将ContextMenuStrip控件绑定到需要显示右键菜单的控件上,‌......
  • .NET 多版本兼容的精美 WinForm UI控件库
    目录前言项目介绍项目使用项目源码项目案例项目组件项目地址前言有粉丝小伙伴在后台留言咨询有没有WinForm控件库推荐,现在就给安排上。.NET平台进行Windows应用程序开发的我们来说,找一个既美观又实用的WinFormUI控件库至关重要。本文将介绍ReaLTaiizor一......
  • 【C#】【WinForm】asp.net Files 的值 "***" 的解决办法(乱码)
    asp.net项目,在生成解决方法过程中,出现“Files的值"***"”解决方案生成失败。解决:例:项目名称为:ABC在项目目录下的“ABC\obj\Debug\”的文件夹中找到与项目同名的“.csproj.FileListAbsolute.txt”文件,即“ABC.csproj.FileListAbsolute.txt”,打开后会看到部分文字乱码,删除掉......