来这里分享个用C#实现图片鼠标拖动和滚动缩放(实例教程《新纹章之谜~光与影的英雄》图文攻略)的源码(附成品)
开发工具:VS2010
开发环境:.net 2.0
因本人只想要一个单文件的可执行文件,故所有图片都封装在一块并在操作时直接使用内存来存放图片这可能会在缩放对内存占用较多,可自行优化
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 9171 2012-12-08 22:13 Picture2GameForm1.cs
文件 28589 2012-12-08 22:10 Picture2GameForm1.Designer.cs
文件 406641 2012-12-08 22:10 Picture2GameForm1.resx
文件 778665 2012-12-05 10:30 Picture2Gameimage1-3章.jpg
文件 110928 2012-12-08 04:09 Picture2Gameimage10章续.jpg
文件 689547 2012-12-05 10:31 Picture2Gameimage11-13章.jpg
文件 140759 2012-12-08 04:09 Picture2Gameimage11章续.jpg
文件 797062 2012-12-05 10:31 Picture2Gameimage14-17章.jpg
文件 683034 2012-12-08 04:02 Picture2Gameimage17前加入的伙伴.jpg
文件 191295 2012-12-08 04:09 Picture2Gameimage17章续.jpg
文件 863571 2012-12-05 10:33 Picture2Gameimage18-19章.jpg
文件 214517 2012-12-08 12:16 Picture2Gameimage2.jpg
文件 840699 2012-12-08 05:11 Picture2Gameimage20-21章.jpg
文件 752624 2012-12-08 05:11 Picture2Gameimage22-23章.jpg
文件 778652 2012-12-05 10:30 Picture2Gameimage4-7章.jpg
文件 699552 2012-12-05 10:31 Picture2Gameimage8-10章.jpg
文件 121437 2012-12-08 04:09 Picture2Gameimage8章续.jpg
文件 774104 2012-12-05 10:28 Picture2Gameimage前篇技巧1.jpg
文件 727899 2012-12-05 10:29 Picture2Gameimage前篇技巧2.jpg
文件 869986 2012-12-05 10:32 Picture2Gameimage应用技巧篇.jpg
文件 818885 2012-12-08 05:11 Picture2Gameimage最终章.jpg
文件 5331 2012-12-08 22:13 Picture2Gameobjx86DebugDesignTimeResolveAssemblyReferencesInput.cache
文件 2650 2012-12-08 22:11 Picture2Gameobjx86DebugGenerateResource-ResGen.read.1.tlog
文件 550 2012-12-08 22:11 Picture2Gameobjx86DebugGenerateResource-ResGen.write.1.tlog
文件 669 2012-12-08 22:14 Picture2Gameobjx86DebugPicture2Game.csproj.FileListAbsolute.txt
文件 11404288 2012-12-08 22:13 Picture2Gameobjx86DebugPicture2Game.exe
文件 269329 2012-12-08 22:11 Picture2Gameobjx86DebugPicture2Game.Form1.resources
文件 48640 2012-12-08 22:13 Picture2Gameobjx86DebugPicture2Game.pdb
文件 10856976 2012-12-08 22:11 Picture2Gameobjx86DebugPicture2Game.Properties.Resources.resources
文件 6656 2012-12-08 11:45 Picture2Gameobjx86DebugTempPEProperties.Resources.Designer.cs.dll
............此处省略22个文件信息
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace Picture2Game
{
public partial class Form1 : Form
{
private static Image img_ori; //初始Img
private static int zoomtime = 0; //缩放次数,负为缩小正为放大
private Point mouseDownPoint = new Point();
private bool isSelected = false;
public Form1()
{
InitializeComponent();
//this.Focus();
}
private void Form1_Load(object sender EventArgs e)
{
OperateClass.SetSuitPictureBox(picBox pan_picture);
img_ori = picBox.Image;
//img_ori = Image.FromFile(picBox.ImageLocation);
}
private void Form1_SizeChanged(object sender EventArgs e)
{
//SetSuitPictureBox();
}
///
/// 获取焦点
///
///
///
private void picBox_MouseEnter(object sender EventArgs e)
{
picBox.Focus();
OperateClass.resetPic(picBox);
}
///
/// 滚动缩放
///
///
///
private void picBox_MouseWheel(object sender System.Windows.Forms.MouseEventArgs e)
{
int numberOfTextLinesToMove=0;
numberOfTextLinesToMove= e.Delta * SystemInformation.MouseWheelScrollLines / 120;
if(toolStripComboBox1.Text.Trim()!=“启用缩放“)numberOfTextLinesToMove=0;
if (numberOfTextLinesToMove > 0)
{
for (int i = 0; i < numberOfTextLinesToMove; i++)
{
zoomtime++;
OperateClass.maxMin(picBox img_ori zoomtime);
}
}
else if (numberOfTextLinesToMove < 0)
{
for (int i = 0; i > numberOfTextLinesToMove; i--)
{
zoomtime--;
OperateClass.maxMin(picBox img_ori zoomtime);
}
}
}
#region 拖动
private void picBox_MouseDown(object sender MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
mouseDownPoint.X = Cursor.Position.X;
mouseDownPoint.Y = Cursor.Position.Y;
isSelected = true;
}
}
private void picBox_MouseMove(object sender MouseEventArgs e)
{
if (isSelected && IsMouseInPanel())
{
this.picBox.Left = this.picBox.Left + (Cursor.Position.X - mouseDownPoint.X);
this.picBox.
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 9171 2012-12-08 22:13 Picture2GameForm1.cs
文件 28589 2012-12-08 22:10 Picture2GameForm1.Designer.cs
文件 406641 2012-12-08 22:10 Picture2GameForm1.resx
文件 778665 2012-12-05 10:30 Picture2Gameimage1-3章.jpg
文件 110928 2012-12-08 04:09 Picture2Gameimage10章续.jpg
文件 689547 2012-12-05 10:31 Picture2Gameimage11-13章.jpg
文件 140759 2012-12-08 04:09 Picture2Gameimage11章续.jpg
文件 797062 2012-12-05 10:31 Picture2Gameimage14-17章.jpg
文件 683034 2012-12-08 04:02 Picture2Gameimage17前加入的伙伴.jpg
文件 191295 2012-12-08 04:09 Picture2Gameimage17章续.jpg
文件 863571 2012-12-05 10:33 Picture2Gameimage18-19章.jpg
文件 214517 2012-12-08 12:16 Picture2Gameimage2.jpg
文件 840699 2012-12-08 05:11 Picture2Gameimage20-21章.jpg
文件 752624 2012-12-08 05:11 Picture2Gameimage22-23章.jpg
文件 778652 2012-12-05 10:30 Picture2Gameimage4-7章.jpg
文件 699552 2012-12-05 10:31 Picture2Gameimage8-10章.jpg
文件 121437 2012-12-08 04:09 Picture2Gameimage8章续.jpg
文件 774104 2012-12-05 10:28 Picture2Gameimage前篇技巧1.jpg
文件 727899 2012-12-05 10:29 Picture2Gameimage前篇技巧2.jpg
文件 869986 2012-12-05 10:32 Picture2Gameimage应用技巧篇.jpg
文件 818885 2012-12-08 05:11 Picture2Gameimage最终章.jpg
文件 5331 2012-12-08 22:13 Picture2Gameobjx86DebugDesignTimeResolveAssemblyReferencesInput.cache
文件 2650 2012-12-08 22:11 Picture2Gameobjx86DebugGenerateResource-ResGen.read.1.tlog
文件 550 2012-12-08 22:11 Picture2Gameobjx86DebugGenerateResource-ResGen.write.1.tlog
文件 669 2012-12-08 22:14 Picture2Gameobjx86DebugPicture2Game.csproj.FileListAbsolute.txt
文件 11404288 2012-12-08 22:13 Picture2Gameobjx86DebugPicture2Game.exe
文件 269329 2012-12-08 22:11 Picture2Gameobjx86DebugPicture2Game.Form1.resources
文件 48640 2012-12-08 22:13 Picture2Gameobjx86DebugPicture2Game.pdb
文件 10856976 2012-12-08 22:11 Picture2Gameobjx86DebugPicture2Game.Properties.Resources.resources
文件 6656 2012-12-08 11:45 Picture2Gameobjx86DebugTempPEProperties.Resources.Designer.cs.dll
............此处省略22个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)