对acdsee拖动图片效果的实现。开始不懂双缓冲,以为双缓冲可以解决这个问题,结果发现使用了双缓冲没啥效果,请教了高人,然后修改了些代码,完成这个效果。
图片是在pictureBox1里。
Bitmap currentMap;
bool first = true;
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
if (zoom == 0)
{
if (e.Button == MouseButtons.Left) //dragging
mousedrag = e.Location;
Image myImage = myMap.GetMap();
currentMap = new Bitmap(myImage);
first = false;
}
}
private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
if (zoom == 0&&!first)
{
Image img = new Bitmap(Size.Width, Size.Height);
Graphics g = Graphics.FromImage(img);
g.Clear(Color.Transparent);//图片移动后显示的底色
g.SmoothingMode = SmoothingMode.HighQuality; //高质量
g.PixelOffsetMode = PixelOffsetMode.HighQuality; //高像素偏移质量
g.DrawImageUnscaled(currentMap, new System.Drawing.Point(e.Location.X - mousedrag.X, e.Location.Y - mousedrag.Y));//在g中移动图片,原图在(0,0)画的,所以直接用new System.Drawing.Point(e.Location.X - mousedrag.X, e.Location.Y - mousedrag.Y)就好。
g.Dispose();
pictureBox1.Image = img;//img是在鼠标这个位置时生成被移动后的暂时的图片
}
}
private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
{
if (zoom == 0)
{
System.Drawing.Point pnt = new System.Drawing.Point(Width / 2 + (mousedrag.X - e.Location.X),
Height / 2 + (mousedrag.Y - e.Location.Y));
myMap.Center = myMap.ImageToWorld(pnt);
pictureBox1.Image = myMap.GetMap();
first = true;
}
}
说说思路,在鼠标点下时创建一个bitmap,currentMap,用它来存放当前图像。鼠标移动时,根据鼠标位置画图,最后,鼠标up时,重新画图
=====================================================================
C#关于picturebox的用法
要在运行时显示或替换图片,可利用函数 LoadPicture 来设置 Picture 属性。提供图片文件名和可选路径名,由 LoadPicture 函数处理加载和显示图片的细节。
picMain.Picture = LoadPicture("VANGOGH.BMP")
PictureBox 控件具有 AutoSize 属性,当该属性设置为 True 时,PictureBox 能自动调整大小与显示的图片匹配。如果要用 AutoSize 属性设置为 True 的 PictureBox ,设计窗体时就需要特别小心。图片将不考虑窗体上的其它控件而调整大小,这可能导致意想不到的后果,如覆盖其它控件。设计时应通过加载每一幅图片来检查是否有这种现象发生。
使用它作为容器
Picture box 控件也可以用作其它控件的容器。象 Frame 控件一样,可以在 PictureBox 控件上面加上其它控件。这些控件随 PictureBox 移动而移动,其 Top 和 Left 属性是相对 PictureBox 而言,而与窗体无关。
PictureBox 容器的一种普通用法是 ToolBar 或 StatusBar 。可将 Image 控件置于这些容器中作为按钮或添加 Label 显示状态信息。将 Align 属性设置为 Top、Bottom、Left 或 Right ,PictureBox 将粘贴在窗体的边缘。
PictureBox 的其它用法
PictureBox 控件有几种方法使 PictureBox 可用于其它目的。例如:把 PictureBox 看作是一块空画布,可以在它上面画画或打印,或者显示文本、图形,甚至是简单的动画。
Print 方法允许向 PictureBox 控件输出文本,如同向打印机输出一样。有几种字体属性可以控制由 Print 方法输入的文本的特性;Cls 方法可以清除输出。
Circle、Line、Point 和 Pset 方法可以用于在 PictureBox 中画图形。一些属性如 DrawWidth、FillColor 和 FillStyle 允许自定义图形的外观。
用 PaintPicture 方法在图片控件内移动 Image 、并在几幅不同的 Image 间快速变化就能产生动画。
PictureBox 控件的主要作用是为用户显示图片。实际显示图片由 Picture 属性决定。Picture 属性包括被显示的图片的文件名(及可选的路径名)。
注意 窗体对象也具有 Picture 属性,通过设置该属性可直接在窗体背景上显示图片。
分享到:
相关推荐
在本文中,我们将深入探讨如何在Flash中实现拖动图片效果以及条状遮罩过渡这一技术。Flash是一款经典的动画和交互式内容开发工具,广泛应用于网页设计、游戏制作和多媒体项目。通过使用ActionScript,我们可以为...
Java 实现图片拖动的例子,演示了如何实现图片拖动的效果,运行代码后将调用根目录下的1.jpg图片,运行程序后,在窗口上按住鼠标左键即可拖动图片变幻位置。实现的方法主要是添加鼠标处理事件。相关的自定义代码: ...
网页内拖动图片
在本文中,我们将深入探讨如何使用Weex框架来创建一个具有卡片堆叠和拖拽效果的应用。Weex是由阿里巴巴开源的跨平台移动开发框架,它允许开发者使用一套代码来构建原生的Android、iOS和Web应用。Vue.js是Weex的基础...
简单的图片任意拖拽效果,任意拖拽到任意位置,代码简单 易懂
这个"android 图片拖拽效果"项目提供了一个详细实现图片拖动功能的源码,使用者可以将其直接导入到自己的Android项目中进行研究和使用。 在Android中,实现图片拖拽通常涉及到以下几个关键知识点: 1. **...
在本实例中,我们将深入探讨如何使用jQuery库实现一个图片拖拽功能,同时支持鼠标双击事件来开启拖拽操作。jQuery是一个强大的JavaScript库,它简化了DOM操作、事件处理和动画制作等任务,使得创建交互式的网页变得...
在JavaScript编程领域,滑块拖动图片对比效果是一种常见的交互设计,它允许用户通过滑动一个调节条来比较两张图片的差异。这种效果通常应用于产品展示、代码编辑器的diff功能,或者是图像处理软件中。在本文中,我们...
在本资源"jquery特效 拖拽图片调整效果"中,我们将探讨如何使用jQuery来实现一个功能,允许用户通过拖动图片来调整其位置和效果。这个特性通常用于网页设计中的图像编辑或布局定制,为用户提供直观且互动的体验。 ...
在JavaScript(JS)编程中,实现鼠标拖拽图片并改变其位置的效果是一项常见的交互功能,尤其在网页设计和开发中非常实用。这个"JS鼠标拖拽图片更换位置效果代码.zip"压缩包提供了一种实现这一功能的方法。下面将详细...
在本文中,我们将深入探讨如何使用jQuery库来创建一个动态的、可拖动排序的图片列表,以此实现“jQuery动画图片拖动排序效果”。这个功能是通过jQuery的事件监听、DOM操作以及动画功能来实现的,它使得用户可以通过...
在JavaScript(JS)中实现图片拖动效果是网页交互中常见的功能之一,它极大地提升了用户体验。这个技术主要涉及HTML、CSS以及JavaScript的核心概念,包括事件处理、DOM操作和坐标计算。接下来,我们将深入探讨如何...
【原生JS实现拖拽图片效果】是一种常见的前端交互功能,允许用户通过鼠标操作移动页面上的元素,如图片。在本文中,我们将深入探讨如何使用JavaScript实现这一效果,同时了解相关事件处理和坐标计算。 首先,我们...
在Android应用开发中,实现图片拖拽效果是一个常见的需求,特别是在设计交互丰富的用户界面时。本文将基于提供的“Android开发之google源码——图片拖拽效果的实现”资源,深入探讨如何在Android平台上创建这样的...
before-after左右拖拽分隔条对比图片效果,图片中间有个拖动条,拖动左右滑动,可看到图片不一样的效果,女模特的脸变嫩了,呵呵,其实是用了两张背景图片实现的,这就需要jquery.beforeafter.js插件了,拖动时候的...
jquery图片鼠标拖动效果代码是一款jquery div页面图片浮动层鼠标拖动效果代码。
【标题】"仿360鼠标拖动图片切换效果"涉及的是在Qt环境中实现一个类似于360浏览器图片浏览的交互功能,通过鼠标拖动来实现图片的平滑切换,并结合了Mac系统的动画效果,给予用户更为流畅和自然的操作体验。...
如果图片位置超出了容器,我们不更新图片的位置,这样就实现了图片只能在特定框内拖动的效果。 这个功能还涉及到CSS样式,确保图片能够相对其父元素定位。我们需要设置图片的`position`属性为`absolute`,并设置`...
标题提到的"支持拖拽图片左右滚动效果集合"是一种交互式图像展示技术,它允许用户通过拖动或滑动来浏览一系列图片,通常应用于产品展示、相册浏览、幻灯片展示等场景。这种效果提供了更加直观和生动的用户体验,使...
标题中的"jquery拖拽图片反复切换调整效果--coveringBad"是指一种使用jQuery库实现的交互式图片切换功能,其中图片可以被用户通过拖拽来反复切换,并且具有一定的视觉调整效果。这种效果常用于产品展示或者对比场景...