其实原理很简单,没有大家想象的那么复杂,只要你用心去观察,去探索这个东西,最近我搞这个东西,感觉挺实用的,跟大家分享一下呵呵... 之后还会有图片的缩放,旋转,等例子和大家分享,我以前做Web的,刚转到这上面还不到一个月,有写的不好或不对的地方还望大家多多包涵,多多指教。 using System; using System.Linq; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using MaipsoftChannelManage; using System.Reflection; using System.IO; using Microsoft.WindowsCE; using System.Drawing.Imaging; using Microsoft.WindowsCE.Forms; using Bornander.UI.Imaging.Test; using Image_Rotation; using System.Drawing.Drawing2D; using Microsoft.WindowsMobile.DirectX; using System.Runtime.InteropServices; using System.Xml; using GradientFillDemo; namespace WindowsMobilePicDemo { public partial class MainForm : Form { int x = 0; int y = 0; int moveX = 0; int moveY = 0; /// <summary> /// 点击图片事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void pictureBox_MouseDown(object sender, MouseEventArgs e) { x = e.X; y = e.Y; } /// <summary> /// 任意角度拖放图片 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void pictureBox_MouseMove(object sender, MouseEventArgs e) { //拖动浏览图片 if (bmpWidth > this.alphaPanel_area.Width && bmpHeight > this.alphaPanel_area.Height) //我这里是判断图片的高度是否大于手机屏幕,如果大于就让他拖动,这样的话图片的任意角度都能看到了,否则就滑动查看图片呵呵 { moveX = e.X - x; moveY = e.Y - y; width += moveX; height += moveY; this.imagePanelRotated.Location = new Point(width, height); } else { //nothing to do here! } } /// <summary> /// 滑动切换图片 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void pictureBox_MouseUp(object sender, MouseEventArgs e) { moveX = e.X - x; if (Math.Abs(moveX) > 5) { if (moveX > 0) { //向右切换图片的方法 } else { //向左切换图片的方法 } } } } }