日期:2014-05-17  浏览次数:20827 次

想在pictureBox里做这样的效果,画一个背景图,然后在上面画点线,可以擦除点线,但下面的背景图不变,该怎么做?
想在pictureBox里做这样的效果,画一个背景图,然后在上面画点线,可以擦除点线,但下面的背景图不变,该怎么做?
需要用两个picturebox吗,还是一个就可以了。
用两个picturebox,我设置上一层的picturebox的backcolor为透明,好像透明不了,需要怎么做?

------解决方案--------------------
用 异或划线  DrawReversibleLine
------解决方案--------------------
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Drawing2D;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
            float X1;
            float Y1;

        private void button1_Click(object sender, EventArgs e)
        {
            this.pictureBox1.Load(Application.StartupPath + "\\QQ图片20131023104740.jpg");
        }

        private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
        {
            string dd;
            dd = e.Button.ToString();
            this.label1.Text = dd;
            Graphics g=pictureBox1.CreateGraphics();
            if (e.Button.ToString() == "Left")
            {
                g.DrawLine(new Pen(Color.DarkGray, 3),X1,Y1,e.X,e.Y );
                X1 = e.X;
                Y1 = e.Y;
            }