如何实现橡皮擦功能? canvas控件,用shapes类画一个矩形,然后作为children对象add到canvas里.问题:怎么样才能擦除矩形的某一部分呢?如果这种思路不通,应该怎么做呢?PS:试过取背景色遮掩矩形,但如果矩形移动后就露馅了. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 矢量擦除“部分”不是想象的那么容易的,例如像Flash里,要将一根曲线中间擦除一部分,必须先将这根线“打散”(实际上是用插值方法重新计算了这根线的数据存储链表) 如果我还想存留一份数据以表示我擦除了哪部分内容。怎么办?我是单独的一个类,并非在DOCument或View这些类内。我的思路是从ONMOVE这些里面调数据,但实现不太好。哪位大哥有更好的方法?谢谢! if (_plotEraserFlag) { //将橡皮擦绘制到Image中 Graphics g = Graphics.FromImage(_oldImage); g.DrawImageUnscaled(???); g.Dispose(); this.pictureBox1.Invalidate(); //重绘 _mouseFlag = false; //标记为鼠标抬起状态 }其中???部分应该是写一个IMAGE和它的大小,但是我不知道怎么写,请求解答,我如果写出来的话应该可以达到橡皮擦的功能,就像楼上的朋友说的,画背景色就可以了. 补充一下我上面说的:_plotEraserFllag是我设置的一个橡皮擦的bool,控制是否用橡皮擦的变量._oldImage是画图区 我也想知道,楼主的意思我感同身受。如果是背景色擦写,那么被擦的图元在移动时会通过重绘还原回来,即所谓的“露馅儿”了。如果是线段。而且,橡皮擦在擦写的时候,一般是不分层级的(Z Index),所以被擦的图元要记住自己被擦的不分也挺困难。求解 关于映射的使用 C#如何按属性查询XML(使用XPath) 水晶报表中怎样将数据有一行变为一列显示 C#DIy窗体是怎么做的 用过WINIO的请进来赐教 求助一个触发一个键的事件的问题,急求。。。。。。。。。。。。。。。。。。。 DataSet是强类型吗? 百度和GOOGLE了几个小时没解决--怎么断开当前某个连接(HTTP连接) 求一个文件搜索的代码 极变态的问题 边吃边聊——怎样才能学好C# C#中怎样获取或设置其它软件窗体句柄?
矢量擦除“部分”不是想象的那么容易的,例如像Flash里,要将一根曲线中间擦除一部分,必须先将这根线“打散”(实际上是用插值方法重新计算了这根线的数据存储链表)
{
//将橡皮擦绘制到Image中
Graphics g = Graphics.FromImage(_oldImage);
g.DrawImageUnscaled(???);
g.Dispose();
this.pictureBox1.Invalidate(); //重绘
_mouseFlag = false; //标记为鼠标抬起状态
}其中???部分应该是写一个IMAGE和它的大小,但是我不知道怎么写,请求解答,我如果写出来的话应该可以达到橡皮擦的功能,就像楼上的朋友说的,画背景色就可以了.
如果是背景色擦写,那么被擦的图元在移动时会通过重绘还原回来,即所谓的“露馅儿”了。如果是线段。而且,橡皮擦在擦写的时候,一般是不分层级的(Z Index),所以被擦的图元要记住自己被擦的不分也挺困难。求解