• 欢迎浏览“String me = Creater\忠实的资深Linux玩家;”,请文明浏览,理性发言,有侵犯你的权益请邮件我(creater@vip.qq.com).
  • 把任何的失败都当作一次尝试,不要自卑;把所有的成功都想成是一种幸运,不要自傲。
  •    6年前 (2013-03-17)  Linux |   2 条评论  27 
    文章评分 0 次,平均分 0.0

    在.NET中,可以通过以下方法获取Graphics对象。
    1. 从Paint事件的参数中获取。
    窗体和许多控件都有一个Paint事件,有一个PaintEventArgs类型的参数e。

    private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
    {
    
    //获取Graphic对象
    
    Graphics g = e.Graphics;
    
    //书写绘图代码
    
    g.DrawRectangle(Pens.Red,10,10,100,50);
    
    //释放Graphic对象占用的资源
    
    g.Dispose();
    
     
    
    }

    窗体的Paint事件是最常用于放置绘图代码的地方,每当窗体被其他窗体挡住,再次显示的时候,窗体的所有内容必须被重绘,否则会得到一个空白的窗体。

    2. 用CreateGraphics方法创建。
    如果需要在Paint方法以外绘图,可以通过控件或窗体的CreateGraphics方法来获取Graphics对象。

    private void button1_Click(object sender, System.EventArgs e)
    {
    
    Graphics g = button1.CreateGraphics();
    
    //画一个椭圆
    
    g.DrawEllipse(Pens.Red,5,5,button1.Width-10,button1.Height-10);
    
    g.Dispose();
    
    }

    3. 对Image对象调用Graphics.FromImage获取。

    private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
    {
    
    //创建Image对象
    
    Bitmap image1 = new Bitmap("football.jpg");
    
    //窗体的绘图对象
    
    Graphics formE = e.Graphics;
    
    //图像的绘图对象
    
    Graphics imageE = Graphics.FromImage(image1);
    
    //将第二幅图覆盖到第一幅的左上角
    
    imageE.DrawImage(new Bitmap("asdf.JPG"),new Rectangle(0,0,this.ClientSize.Width/2,this.ClientSize.Height/2));
    
    //将合成好的图像绘制在窗体上
    
    formE.DrawImage(image1,new Rectangle(0,0,this.ClientSize.Width,this.ClientSize.Height));
    
     
    
    //释放所有资源
    
    formE.Dispose();
    
    imageE.Dispose();
    
    image1.Dispose();
    
    }
     

    除特别注明外,本站所有文章均为String me = "Creater\忠实的资深Linux玩家";原创,转载请注明出处来自http://unix8.net/home.php/123.html

    关于

    发表评论

    暂无评论

    切换注册

    登录

    忘记密码 ?

    切换登录

    注册

    扫一扫二维码分享