using System.Drawing;
using System.IO;
using System.Text.RegularExpressions;
using System.Windows.Forms;
namespace WinFormImage
{
public partial class Form1 : Form
{
private OpenFileDialog openFile;
public Form1()
{
InitializeComponent();
openFile = new OpenFileDialog();
openFile.Filter = "ImageFormat (*.BMP;*.GIF;*.JPG;*.PNG)|*.bmp;*.gif;*.jpg;*.png";
openFile.Multiselect = false;
this.AllowDrop = true;
this.DoubleBuffered = true;
this.HelpButton = true;
this.MaximizeBox = false;
this.MinimizeBox = false;
this.BackgroundImageLayout = ImageLayout.Zoom;
this.StartPosition = FormStartPosition.CenterScreen;
}
#region OnDragEnter
protected override void OnDragEnter(DragEventArgs e)
{
base.OnDragEnter(e);
this.Activate(); // 激活窗体并给予它焦点。
DataObject data = e.Data as DataObject;
if (data.ContainsFileDropList())
{
FileInfo info = new FileInfo(data.GetFileDropList()[0]);
if (Regex.IsMatch(info.Extension, @".(bmp|gif|jpg|png)", RegexOptions.IgnoreCase)) // 指定不区分大小写的匹配。
{
this.Text = info.Name;
this.BackgroundImage = Image.FromFile(info.FullName);
data = Clipboard.GetDataObject() as DataObject;
Clipboard.SetImage(this.BackgroundImage);
Clipboard.SetDataObject(data, true);
}
}
}
#endregion
#region OnHelpButtonClicked
protected override void OnHelpButtonClicked(System.ComponentModel.CancelEventArgs e)
{
base.OnHelpButtonClicked(e);
e.Cancel = true;
if (openFile.ShowDialog(this) == DialogResult.OK)
{
this.Text = openFile.SafeFileName;
this.BackgroundImage = Image.FromFile(openFile.FileName);
IDataObject data = Clipboard.GetDataObject();
Clipboard.SetImage(this.BackgroundImage);
Clipboard.SetDataObject(data, true);
}
}
#endregion
}
}