问题描述
实现如图所示功能:选择图片,然后拼到一个版面上,最后输出为一张大图求思路,有例子不甚感激,要条件也行,谢谢
解决方案
解决方案二:
不懂。帮顶!
解决方案三:
左边自定义控件,右边N个PictureBox,输出时建立所有Picturebox在一起时最大的区域,遍历每个PictureBox将图片按PictureBox坐标绘制到总图。
解决方案四:
移动图片,就是鼠标的控制,这个你可以去搜索C#移动之类的信息,拼成大图,可以根据每个图片的位置,把他们draw到一个image上,然后将image输出
解决方案五:
引用3楼bdmh的回复:
移动图片,就是鼠标的控制,这个你可以去搜索C#移动之类的信息,拼成大图,可以根据每个图片的位置,把他们draw到一个image上,然后将image输出
移动图片的时候,图片之间相碰后不知道怎么处理,可否给点思路啊大哥
解决方案六:
js和ajax操作。
解决方案七:
js和ajax操作。
解决方案八:
定义一个自己的Frame加上Z-Index属性涉及到层的概念判断鼠标落点,查找在该落点的所有图片,然后再判断该落点所有图片的Z-Index然后根据Z-Index的大小值确定选中的目标,然后更改该图片的AllowMove属性移动鼠标Move方法中判断AllowMove属性是否为true如果为True那就移动(跟着鼠标画)...下面应该也就没什么难度了吧...
解决方案九:
定义一个自己的Frame加上Z-Index属性涉及到层的概念判断鼠标落点,查找在该落点的所有图片,然后再判断该落点所有图片的Z-Index然后根据Z-Index的大小值确定选中的目标,然后更改该图片的AllowMove属性移动鼠标Move方法中判断AllowMove属性是否为true如果为True那就移动(跟着鼠标画)...下面应该也就没什么难度了吧...
解决方案十:
该回复于2011-12-28 10:41:51被版主删除
解决方案十一:
引用8楼shigaofei1的回复:
定义一个自己的Frame加上Z-Index属性涉及到层的概念判断鼠标落点,查找在该落点的所有图片,然后再判断该落点所有图片的Z-Index然后根据Z-Index的大小值确定选中的目标,然后更改该图片的AllowMove属性移动鼠标Move方法中判断AllowMove属性是否为true如果为True那就移动(跟着鼠标画)...下面应该也就……
兄弟说的是WPF的吧,可惜我不会呀T_T
解决方案十二:
引用8楼shigaofei1的回复:
定义一个自己的Frame加上Z-Index属性涉及到层的概念判断鼠标落点,查找在该落点的所有图片,然后再判断该落点所有图片的Z-Index然后根据Z-Index的大小值确定选中的目标,然后更改该图片的AllowMove属性移动鼠标Move方法中判断AllowMove属性是否为true如果为True那就移动(跟着鼠标画)...下面应该也就……
兄弟说的是wpf吧,可惜我不会呀T_T,能否指点指点
解决方案十三:
判断矩形是否相交函数如下,跟所有其他图片判断是否相交,相交就画虚框,没相交就找上、下、左、右最近的边看看是否需要碰撞处理protectedboolCrossLine(Rectangler1,Rectangler2){intx1,x2,x3,x4;inty1,y2,y3,y4;x1=r1.X;x2=r1.X+r1.Width;y1=r1.Y;y2=r1.Y+r1.Height;x3=r2.X;x4=r2.X+r2.Width;y3=r2.Y;y4=r2.Y+r2.Height;boolm=(x1>x4)|(x2<x3);booln=(y2<y3)|(y1>y4);return!(m|n);}
解决方案十四:
判断矩形是否相交函数如下,跟所有其他图片判断是否相交,相交就画虚框,没相交就找上、下、左、右最近的边看看是否需要碰撞处理protectedboolCrossLine(Rectangler1,Rectangler2){intx1,x2,x3,x4;inty1,y2,y3,y4;x1=r1.X;x2=r1.X+r1.Width;y1=r1.Y;y2=r1.Y+r1.Height;x3=r2.X;x4=r2.X+r2.Width;y3=r2.Y;y4=r2.Y+r2.Height;boolm=(x1>x4)|(x2<x3);booln=(y2<y3)|(y1>y4);return!(m|n);}
解决方案十五:
引用13楼cacoda的回复:
判断矩形是否相交函数如下,跟所有其他图片判断是否相交,相交就画虚框,没相交就找上、下、左、右最近的边看看是否需要碰撞处理protectedboolCrossLine(Rectangler1,Rectangler2){intx1,x2,x3,x4;inty1,y2,y3,y4;x1……
嗯嗯,判断相交已经会了,用rectangle1.IntersectWith(rectangle2),相交后呢?
解决方案:
啊,这问题没人答了啊
解决方案:
给你设定了个类publicclassFrame:IDisposable{publicFrame(intx,inty,intwidth,intheight,Graphicsg){Img=newBitmap(width,height);_Rectangle=newRectangle(x,y,width,height);parentGraphics=g;ischange=true;}privateImageImg;privateint_Z_Index;publicintZ_Index{get{return_Z_Index;}set{_Z_Index=value;ischange=true;}}publicGraphicsparentGraphics{get;set;}publicvoidDraw(){if(ischange){parentGraphics.DrawImage(Img,_Rectangle.Location);ischange=false;}}publicboolischange=false;privateRectangle_Rectangle;publicintX{get{return_Rectangle.X;}set{_Rectangle=newRectangle(value,_Rectangle.Y,_Rectangle.Width,_Rectangle.Height);ischange=true;}}publicintY{get{return_Rectangle.Y;}set{_Rectangle=newRectangle(_Rectangle.X,value,_Rectangle.Width,_Rectangle.Height);ischange=true;}}publicintWidth{get{return_Rectangle.Width;}}//set{_Rectangle=newRectangle(_Rectangle.X,_Rectangle.Y,value,_Rectangle.Height);}}publicintHeight{get{return_Rectangle.Height;}}//set{_Rectangle=newRectangle(_Rectangle.X,_Rectangle.Y,_Rectangle.Width,value);}}///<summary>///ifthisIs_collidewiththedestinationimage///</summary>///<paramname="destination"></param>///<returns></returns>publiccollideIs_collide(Framedestination){Rectanglercl=Rectangle.Intersect(destination._Rectangle,this._Rectangle);collidec;if(!rcl.IsEmpty){if(rcl.X>destination.X){c=collide.right;}elseif(rcl.X==destination.Y){c=collide.equalX;}else{c=collide.left;}if(rcl.Y>destination.Y){c=c|collide.down;}elseif(rcl.Y==destination.Y){c=c|collide.equalY;}else{c=c|collide.down;}}else{c=collide.no;}returnc;}publicvoidDispose(){Img.Dispose();Img=null;}///<summary>///collideenum///</summary>publicenumcollide:sbyte{no=1,top=2,right=4,down=8,left=16,equalX=32,equalY=64}}
解决方案:
帮定下,我也遇到同样的问题
解决方案:
这里貌似小心过度了...publicintX{get{return_Rectangle.X;}set{_Rectangle=newRectangle(value,_Rectangle.Y,_Rectangle.Width,_Rectangle.Height);ischange=true;}}publicintY{get{return_Rectangle.Y;}set{_Rectangle=newRectangle(_Rectangle.X,value,_Rectangle.Width,_Rectangle.Height);ischange=true;}
只要这样就行了publicintX{get{return_Rectangle.X;}set{_Rectangle.X=value;ischange=true;}}publicintY{get{return_Rectangle.Y;}set{_Rectangle.Y=value;ischange=true;}