WPF图片显示放大缩小,与绘制直线,折线,矩形

现在有个需求,需要显示的图片长宽比为12:1,在一个控件下显示不完全,需要通过类似滚轮来实现查看其他部分,然后可以放大缩小,当然不能缩小到小于控件的大小。然后要在该图上进行绘制直线,折线,矩形等功能。之前用的emgucv的imagebox,后来发现imagebox自带的滚轮会自动消失。还有绘制完图形,会使得图像重新加载,只显示左边,这样很不友好。请问有什么比较合适的控件能解决我的需求么,可以说下思路。包括imagebox和wpf自带的image控件,在此需求下的优劣点。谢谢

图片说明

1个回答

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
鼠标绘制折线矩形多边形
利用鼠标绘制折线、矩形和多边形,左键点击开始绘制,右键单击结束图形绘制
MFC绘制直线,矩形,文本框
MFC绘制直线,矩形,文本框 调试过的,可以直接运行啦
Qt绘制直线、矩形、圆
Qt绘制直线、矩形、圆新建一个Qt Widgets Application工程添加头文件#include <QPainter>添加paintEvent函数,代码如下:void MainWindow::paintEvent(QPaintEvent *) { QPainter painter(this); painter.setPen(QPen(Qt::blue,4));//设置画笔形式
WPF InkCanvas绘制矩形和椭圆
    前面说到了InkCanvas的基本操作,这里用一个实例来说明具体应用:绘制矩形和椭圆。 效果图 xaml代码 &amp;lt;Window x:Class=&quot;WPF_InkCanvas.ROI_InkCanvas&quot; xmlns=&quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&quot; xmlns:...
openlayers4 lineString无法绘制折线,为直线
如果你也遇到了这个问题,试着把坐标转成number类型,还是要按照文档来啊 let center = item.center; if (this.mapModel.track.getGeometry()) { this.mapModel.track.getGeometry().appendCoordinate(center); } else { le...
MFC编程实现绘制直线矩形椭圆
利用MFC编程,实现在框图中绘制直线矩形椭圆的功能
MFC实现点,直线,矩形,椭圆的绘制
MFC实现点,直线,矩形,椭圆的绘制,对于学MFC有很大的 帮助。
iOS 画线 绘制直线、矩形、三角形
// 覆盖drawRect方法,你可以在此自定义绘画和动画 - (void)drawRect:(CGRect)rect {     //An opaque type that represents a Quartz 2D drawing environment.     //一个不透明类型的Quartz 2D绘画环境,相当于一个画布,你可以在上面任意绘画    
如何绘制矩形,直线,圆形等。
在DELPHI中,如何用鼠标绘制,矩形,直线,圆形等。使用哪些API函数。谢谢各位。
直线,折线、多边形
SVG可缩放矢量图形(Scalable Vector Graphics)是基于可扩展标记语言(XML),用于描述二维矢量图形的一种图形格式。SVG是W3C("World Wide Web ConSortium 在2000年8月制定的一种新的二维矢量图形格式,也是规范中的网络矢量图形标准。SVG严格遵从XML语法,并用文本格式的描述性语言来描述图像内容,因此是一种和图像分辨率无关的矢量图形格式。
openGL 橡皮筋折线+矩形
利用opengl的橡皮筋模型源代码,橡皮筋折线和矩形,C语言编写。
OPENGL橡皮筋矩形和折线
OPENGL 橡皮筋 矩形绘制 和橡皮筋绘制
c++的折线矩形程序
这是用opengl中的菜单实现的 菜单与鼠标的右键连接是难点 这也是我做的第一个opengl的程序
MFC画图(直线,折线。。)
基于mfc的画图小程序,可以画直线、折线、圆等。
MFC鼠标拖动绘制直线绘制矩形C++
重载OnLButtonDown\OnMouseMove\OnLButtonUp,单击鼠标并拖动,实现MFC界面上直线绘制、矩形绘制、圆形绘制。
直线与直线,圆,矩形交点
用面向对象的思维设计相关类,从而实现直线与直线、直线与圆、直线与矩形的交点。
关于利用OPENGL实现直线、矩形、折线的橡皮筋技术的有关问题
以下代码是我利用OPENGL实现的。其中折线的结果,一直在闪烁。希望高手帮忙,不知道如何下手解决这个问题。rn#include rn#include rnusing namespace std;rnrn#define NUM 100 //折线的最大折线段 rnint Flag = 0; //标记是否已经开始绘制折线 rnrnint iPointNum = 0; //已确定点的数目rnint x1 = 0,x2 = 0,y1 = 0,y2 = 0;rnint winWidth = 800,winHeight = 600;rnint Mousex, Mousey; //用于记录当前鼠标的位置 rnrnstruct LineNode rnrn GLint x1; rn GLint y1; rn GLint x2; rn GLint y2; rnLine[NUM]; rnrnint n = 0; //用于记录折线有几段 rnint choice;rnrnvoid Initial(void)rnrn glClearColor(1.0f,1.0f,1.0f,1.0f);rnrnrnvoid ChangeSize(GLint w,GLint h)rnrn winWidth = w,winHeight = h;rn glViewport(0,0,w,h);rn glMatrixMode(GL_PROJECTION);rn glLoadIdentity();rn gluOrtho2D(0.0,winWidth,0.0,winHeight);rnrnrnvoid DrawLine()rnrn glColor3f(1.0f,0.0f,0.0f);rn glBegin(GL_LINES);rn glVertex2i(x1,y1);rn glVertex2i(x2,y2);rn glEnd();rnrnrnvoid DrawRectf()rnrn glColor3f(1.0,0.0,0.0);rn glRectf(x1,y1,x2,y2);rnrnrnvoid DrawStrip()rnrn glColor3f(1.0f,0.0f,1.0f);rn for (int i = 0; i < n; i++)rn glBegin(GL_LINES); //绘制直线段 rn glVertex2i(Line[i].x1, Line[i].y1); rn glVertex2i(Line[i].x2, Line[i].y2); rn glEnd(); rn rn //动态绘制鼠标动作 rn if (Flag == 1) rn glBegin(GL_LINES); rn glVertex2i(Line[i].x1, Line[i].y1); rn glVertex2i(Mousex, Mousey); rn glEnd(); rn rn glutSwapBuffers(); //交换缓冲区rnrnrnint ChooseTheItem()rnrn cout<<"请选择:\n"rn <<"1.直线\n"rn <<"2.矩形\n"rn <<"3.折线"<>choice;rn if(choice>=0 && choice<=3)rn return choice;rn elsern cout<<"输入错误,请重新输入。"<=1)rnrn switch(choice)rn case 1:DrawLine();break;rn case 2:DrawRectf();break;rn case 3:DrawStrip();break;rn rnrn rn glutSwapBuffers(); //交换缓冲区rnrnrnvoid MousePlot(GLint button,GLint action,GLint xMouse,GLint yMouse)rnrn if(choice==3)rn if (button == GLUT_LEFT_BUTTON && action == GLUT_DOWN) rn if (Flag == 0) rn Flag = 1; rn iPointNum = 1;rn Line[n].x1 = xMouse; rn Line[n].y1 = winHeight - yMouse; rn rn else rn Line[n].x2 = xMouse; rn Line[n].y2 = winHeight - yMouse; rn n++; rn //折线的第二点作为下一段线的第一个的点 rn Line[n].x1 = Line[n-1].x2; rn Line[n].y1 = Line[n-1].y2; rn rn rn rnrn elsern if(button==GLUT_LEFT_BUTTON && action == GLUT_DOWN)rn if(iPointNum==0 || iPointNum==2)rn iPointNum = 1;rn x1 = xMouse,y1 = winHeight - yMouse;rn rnrn elsern iPointNum = 2;rn x2 = xMouse,y2 = winHeight - yMouse;rn glutPostRedisplay();rn rn rnrn if(button==GLUT_RIGHT_BUTTON && action==GLUT_DOWN)rn iPointNum = 0;rn glutPostRedisplay();rn rn rnrnrnvoid PassiveMouseMove(GLint xMouse,GLint yMouse)rnrn if(choice==3)rn Mousex = xMouse; rn Mousey = winHeight - yMouse; rn glutPostRedisplay(); rn rn elsern if(iPointNum==1)rn x2 = xMouse;rn y2 = winHeight - yMouse;rn glutPostRedisplay();rn rn rnrnrnint main(int argc,char *argv[])rnrn glutInit(&argc,argv);rn choice = ChooseTheItem();rn glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);rnrn glutInitWindowSize(400,300);rn glutInitWindowPosition(100,100);rn glutCreateWindow("橡皮筋技术");rnrn glutDisplayFunc(Display);rn glutReshapeFunc(ChangeSize);rn glutMouseFunc(MousePlot);rn glutPassiveMotionFunc(PassiveMouseMove);rnrn Initial();rn glutMainLoop();rn return 0;rn
一个矩形放大缩小的问题
一个举行按比例放大缩小rnrn// 二倍放大rn dc.StretchBlt(0, 0, m_rect.right, m_rect.bottom, &m_MapDc, rn m_rect.right / 4, m_rect.bottom / 4,rn m_rect.right / 2, m_rect.bottom / 2, SRCCOPY | MERGECOPY);rnrn我想4倍放大 rn dc.StretchBlt(0, 0, m_rect.right, m_rect.bottom, &m_MapDc, rn m_rect.right / 8, m_rect.bottom / 8,rn m_rect.right / 4, m_rect.bottom / 4, SRCCOPY | MERGECOPY);rnrn就是一个矩形按照重点点放大
WPF 图片显示
MFC中,图片是可以作为资源文件和程序一起发布的,对WPF没怎么研究过,今天研究了如何在WPF中把 图片作为资源文件一起发布的问题。 1.右键点击工程名 2.选择Add 3.在菜单中选New Folder,重命名为Image即可 4.选择新建好的Image文件夹,右键点击Existing Item 5.选择要发布的图片,注意,建好文件后,拷贝图片文件至该目录下 6.XAML中修改Im
wpf 绘制矩形 可动态调整矩形大小
WPF工程 可绘制多个矩形 绘制结束后可拖动矩形的四个角 动态改变矩形大小
flex画直线 清除直线 多点折线
flex画直线 清除直线 多点折线 双击结束。颜色改变 颜色替换。
绘制直线
本课程主要介绍了iOS8中的核心绘图API,包括绘制直线、阴影、渐变、图像等。
矩形绘制?!
RectangleF HandleRect = new RectangleF (p.x,p.y, constDef.HandleWidth, constDef.HandleWidth);rn GraphicsState gs = g.Save();rn g.Transform = new Matrix();rn g.FillRectangle(b, HandleRect);rn g.DrawRectangle(ObjectHandle.HandleP, HandleRect.X, HandleRect.Y, HandleRect.Width, HandleRect.Height);rn g.Restore(gs);rnrnrn这是我绘制的矩形,现在想把该矩形旋转90度,绘制,该怎么做啊!?新手在线等
绘制直线???
如何实现窗口中点的捕捉,也就是说鼠标在窗口中点下去,产生一个点,然后鼠标弹起来有捕捉一个点,两点连接,产生一条线????还有就是如何实现鼠标点击两个点,之后就产生了一条连接这两个点的直线????
矩形的绘制
请教一个,矩形如何绘制?谢啦.各位大侠
绘制矩形
本课程主要使用C#图形技术,绘制各种统计图表,如面形图、柱状图、折线图、饼图等。
绘制(平滑与折线)曲线
绘制(平滑与折线)曲线。 数据直观,界面漂亮。
绘制文件中的折线
#includern#includern#includern#includern#includern#includern#includernstruct GLPointrn GLfloat x,y;rn;rnGLPoint p;rnint screenwith=640.0,screenheight=440.0;rnconst float r=1.618033989;rnvoid myinit(void)rnrn glClearColor(1.0,1.0,1.0,0.0);rn glColor3f(0.0f,0.0f,0.0f);rn glPointSize(4.0);rn //glMatrixMode(GL_PROJECTION);rn //gluOrtho2D(0.0,screenwith,0.0,screenheight);rnrnrn void drawPolyLineFile(char * fileName)rnrn fstream inStream;rn inStream.open(fileName, ios ::in); // open the filern if(inStream.fail())rn return;rn glClear(GL_COLOR_BUFFER_BIT); // clear the screen rn GLint numpolys, numLines, x ,y;rn inStream >> numpolys; // read the number of polylinesrn for(int j = 0; j < numpolys; j++) // read each polylinern rn inStream >> numLines;rn glBegin(GL_LINE_STRIP); // draw the next polylinern for (int i = 0; i < numLines; i++)rn rn inStream >> x >> y; // read the next x, y pairrn glVertex2i(x, y);rn rn glEnd();rn rn glFlush();rn inStream.close();rnrn void setWindow(GLdouble left,GLdouble right,GLdouble buttom,GLdouble top)rn rn glMatrixMode(GL_PROJECTION);rn glLoadIdentity();rn gluOrtho2D(left,right,buttom,top);rn rn void setViewport(GLint left,GLint right,GLint bottom,GLint top)rn rn glViewport(left,bottom,right-left,top-bottom);rn rnrnvoid mydiplay(void)rnrn //glClear(GL_COLOR_BUFFER_BIT);rn setWindow(0.0,screenwith,0.0,screenheight);rn for(int i=0;i<5;i++)rn rn for(int j=0;j<5;j++)rn rn glViewport(i*64,j*44,64,44);rn drawPolyLineFile("dino.dat");rn rn rnrnvoid mydisplay()rnrn //glClear(GL_COLOR_BUFFER_BIT);rn //setWindow(0.0,screenwith,0.0,screenheight);rn for(int i=0;i<5;i++)rn rn for(int j=0;j<5;j++)rn rn if((i+j)%2==0)rn setWindow(0.0,screenwith,0.0,screenheight);rn elsern setWindow(0.0,screenwith,screenheight,0.0);rn glViewport(i*64,j*44,64,44);rn drawPolyLineFile("dino.dat");rn rn rnrnvoid main(int argc,char** argv)rnrn glutInit(&argc,argv);rn glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);rn glutInitWindowSize(screenwith,screenheight);rn glutInitWindowPosition(100,150);rn glutCreateWindow("OpenGL makes gode scale rectangle!");rn glutDisplayFunc(mydisplay);rn myinit();rn glutMainLoop();rnrn为什么只有一只恐龙?应该是25个
直线变成了成了折线
我用drawLine 画一根直线,但如果画的线过长时显示出来就不是很直了,还有画rn圆也是感觉不是很光滑。请问有没有好的方法处理???
百度地图【手动绘制折线】
[b][/b][color=#0000FF][/color]亲们........我现在遇到一个问题急需大家帮助啊!!!!!rn最近因为工作需要在研究百度地图rn现在遇到一个问题rn需要实现一个再地图上手动绘折线的demo,我不知道怎么存储地图上点击的坐标!请赐教啊!不要再告诉我去看百度API实例了,恕我菜啊!真的没找到怎么记录鼠标点下的点!rnvar map = new BMap.Map("container");rnvar point = new BMap.Point(116.404, 39.915);rnmap.centerAndZoom(point, 15);rnvar polyline = new BMap.Polyline([rn new BMap.Point(116.399, 39.910),rn new BMap.Point(116.405, 39.920)rn], strokeColor:"blue", strokeWeight:6, strokeOpacity:0.5);rnmap.addOverlay(polyline);rn这个是添加折线覆盖物的代码。但是这里是给定的point,如何获取地图上自己点击的点,并且是多个点的坐标...rn如果有知道的XDJM千万不要路过啊rn一定帮帮偶哈!!!rn
Android 绘制折线和柱状图
AchartEngine制作图表–>折线图,柱状图:下载achartengine-1.1.0.jarhttp://download.csdn.net/detail/csdnadcode/7771691 http://download.csdn.net/detail/u011247387/8013717Android AchartEngine,这是为Android应用而设计的绘图工具库,能够支持多种
Asp.net绘制折线统计图
开发环境C#+SQL Server2000 主要实现的功能,从数据库中提取相关数据,动态绘制曲线
asp.net绘制折线统计图
同过asp.net怎么绘制一个网络竞价会的折线统计图。要求横坐标显示竞价次数,纵坐标显示报价金额而且报价金额会随着竞买人的报价不断增大更新。
Canvas 绘制折线统计图
我们只要不是要去用 canvas 做游戏,能做到 让 数据 可视图形化 即可,下面是 canvas 绘制折线统计图的练习 <canvas width="600" height="400" id="cas" style='border: 1px solid black;'></canvas> <script> var cas = document.getElementById( 'cas'
echarts 绘制折线图表
第一步:首先在body里给一个“容器”,方便在里面绘制图表 &amp;lt;!-- 容器:id:用来绑定option属性 style:设置容器的大小、位置等样式 -&amp;gt; &amp;lt;div id=&quot;main&quot; style=&quot;width:1100px;height:500px;margin-left:auto;margin-right: auto;&quot;&amp;gt;&amp;lt;/div&amp;gt; &amp;lt;!-...
iOS 绘制折线
绘制代码:UIBezierPath * halfCirclePath = [UIBezierPath bezierPathWithArcCenter:CGPointMake(centerX, centerY) radius:[self radius] startAngle:[self radiusOfDegress:self.startValue] endAngle:[self radiusOfDe
画直线矩形椭圆
在c++中利用mfc画直线矩形椭圆,其中包含程序代码。
检测直线,圆形,矩形
检测直线:cvHoughLines,cvHoughLines2 检测圆:cvHoughCircles 检测矩形:opencv中没有对应的函数,下面有段代码可以检测矩形,是通过先找直线,然后找到直线平行与垂直的四根线。
直线与矩形的交点
直线与矩形的交点
算法 横纵坐标的矩形折线解析
   图1 在横纵坐标中的以中心为原点,以折线形式不断有续向外延伸,随意输入在折线上的坐标,得出终点到原点之间距离图2如图2是解析的方法,仔细观察,你会发现里面规律。先分成四类,然后在每一类当中再次分两类,...
相关热词 c# login 居中 c# 考试软件 c# 自然语言分析 c# 分段读取文件 c# 泛型反射 c#打断点 c# 时间转多少秒 c# 线程函数加参数 c# modbus 读取 c#查询集合表