c# 如何在panel上绘图??
发布网友
发布时间:2024-10-05 04:40
我来回答
共3个回答
热心网友
时间:2024-12-03 07:14
由于Panel采用系统支持的绘图模式, 所以你直接在上面绘图很有可能被系统重绘覆盖. 我帮你修改了绘图函数, 在Panel的BackGroundImage上绘图, 见代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Drawing2D;
namespace WindowsApplication1.els
{
public partial class els : Form
{
public Color[] mycolor = new Color[] { Color.Black, Color.Brown };
public Point mypoint;
public Pen mypen = new Pen(Brushes.Black);
public els()
{
InitializeComponent();
draw();
}
void draw() //修改的绘图函数
{
Image im = new Bitmap(this.panelEx1.Width, this.panelEx1.Height);
Graphics g = Graphics.FromImage(im);
GraphicsPath gp = new GraphicsPath();
Rectangle rec = new Rectangle(new Point(30, 30), new Size(100, 30));
gp.AddRectangle(rec);
PathGradientBrush pb = new PathGradientBrush(gp);
pb.CenterColor = Color.Blue;
pb.SurroundColors = mycolor;
g.DrawRectangle(mypen, rec);
g.FillPath(pb, gp);
this.panelEx1.BackgroundImageLayout = ImageLayout.Stretch;
this.panelEx1.BackgroundImage = im;
}
}
}
已经调试通过, 希望对你有帮助.
热心网友
时间:2024-12-03 07:15
代码编译没错。
只不过不知道你想要的效果是怎么样的,是要点击控件激发事件,还是你想一运行程序就绘制出图形?
我试了下,在按钮事件中添加draw()方法,可以绘制出图形;但是我在Form_Load事件中添加draw()方法,却不能一运行程序就绘制出图形,这个问题我也是在困惑当中。
热心网友
时间:2024-12-03 07:15
给个邮箱啊,不然怎么发你