Form 1
---------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Xml.Linq;
using System.Text;
using System.Windows.Forms;
using System.Windows;
using System.Security.Principal;
using System.Xml;
namespace AV4._1_ClientTool.Dialogs1.View
{
public partial class Maps : Form
{
public Maps()
{
InitializeComponent();
}
//form global variables
ImageList thumbs = new ImageList();
Size ThumbSize = new Size(64, 64);
PictureBox pictureBox1 = new PictureBox();
#region Thumbnails
private void Maps_Load(object sender, EventArgs e)
{
thumbs.ImageSize = ThumbSize;
thumbs.ColorDepth = ColorDepth.Depth32Bit;
listView1.View = System.Windows.Forms.View.LargeIcon;
listView1.LargeImageList = thumbs;
string path = @"C:\Projects\AV4.1\Images";
pictureBox1.Size = thumbs.ImageSize;
pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;
System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(path);
foreach (System.IO.FileInfo fi in di.GetFiles("*.jpg"))
{
Bitmap bmp = new Bitmap(pictureBox1.Width, pictureBox1.Height);
pictureBox1.Image = Image.FromFile(fi.FullName);
pictureBox1.DrawToBitmap(bmp, pictureBox1.ClientRectangle);
thumbs.Images.Add(bmp);
ListViewItem lvi = new ListViewItem(System.IO.Path.GetFileName(fi.Name), thumbs.Images.Count - 1);
lvi.Tag = fi.Name;
listView1.Items.Add(lvi);
}
foreach (System.IO.FileInfo fi in di.GetFiles("*.gif"))
{
Bitmap bmp = new Bitmap(pictureBox1.Width, pictureBox1.Height);
pictureBox1.Image = Image.FromFile(fi.FullName);
pictureBox1.DrawToBitmap(bmp, pictureBox1.ClientRectangle);
thumbs.Images.Add(bmp);
ListViewItem lvi = new ListViewItem(System.IO.Path.GetFileName(fi.Name), thumbs.Images.Count - 1);
lvi.Tag = fi.Name;
listView1.Items.Add(lvi);
}
}
#endregion
#region Full Image Popup
private void listView1_DoubleClick(object sender, EventArgs e)
{
Point pt = listView1.PointToClient(Cursor.Position);
ListViewItem lvi = listView1.GetItemAt(pt.X, pt.Y);
Dialogs1.Display.Map1 frm = new Dialogs1.Display.Map1((string)lvi.Tag);
if (lvi != null)
{
frm.Text = lvi.Text;
frm.Show();
}
}
#endregion
}
}
-------------------------------------------------------------------
Form 2
-------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Xml.Linq;
using System.Text;
using System.Windows.Forms;
using System.Windows;
using System.Security.Principal;
using System.Xml;
namespace AV4._1_ClientTool.Dialogs1.Display
{
public partial class Map1 : Form
{
private double ZOOMFACTOR = 1.25; // = 25% smaller or larger
private int MINMAX = 5; // 5 times bigger or smaller than the ctrl
public Map1(string targetFileName)
{
InitializeComponent();
this.pictureBox1.MouseWheel += new MouseEventHandler(pictureBox1_MouseWheel);
if (!string.IsNullOrEmpty(targetFileName))
{
ShowFile(targetFileName);
}
}
public void ShowFile(string targetFileName)
{
pictureBox1.Controls.Clear();
foreach (var item in BusinessTier.IconFactory.ImageSet)
{
if (item.Image != targetFileName) continue;
pictureBox1.Image = Image.FromFile(string.Format(@"{0}\{1}", item.Path, item.Image));
foreach (var icon in item.Icons)
{
var tempIcon = Image.FromFile(icon.File);
var tempPicturebox = new PictureBox
{
Image = tempIcon,
Location = new Point(icon.CoordinateX, icon.CoordinateY),
Size = new Size(tempIcon.Width, tempIcon.Height),
};
pictureBox1.Controls.Add(tempPicturebox);
}
break;
}
}
#region Zooming Methods
///
/// Make the PictureBox dimensions larger to effect the Zoom.
///
/// Maximum 5 times bigger
private void ZoomIn()
{
if ((pictureBox1.Width < (MINMAX * panel1.Width)) &&
(pictureBox1.Height < (MINMAX * panel1.Height)))
{
pictureBox1.Width = Convert.ToInt32(pictureBox1.Width * ZOOMFACTOR);
pictureBox1.Height = Convert.ToInt32(pictureBox1.Height * ZOOMFACTOR);
pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
}
}
///
/// Make the PictureBox dimensions smaller to effect the Zoom.
///
/// Minimum 5 times smaller
private void ZoomOut()
{
if ((pictureBox1.Width > (panel1.Width / MINMAX)) &&
(pictureBox1.Height > (panel1.Height / MINMAX)))
{
pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
pictureBox1.Width = Convert.ToInt32(pictureBox1.Width / ZOOMFACTOR);
pictureBox1.Height = Convert.ToInt32(pictureBox1.Height / ZOOMFACTOR);
}
}
#endregion
#region Mouse Events
private void pictureBox1_MouseWheel(object sender, MouseEventArgs e)
{
if (e.Delta < 0)
{
ZoomOut();
}
else
{
ZoomIn();
}
}
private void pictureBox1_MouseEnter(object sender, EventArgs e)
{
if (pictureBox1.Focused == false)
{
pictureBox1.Focus();
}
}
private void pictureBox1_MouseLeave(object sender, EventArgs e)
{
this.panel1.Focus(); // give the form focus instead
}
#endregion
#region Button Events
private void toolStripButton1_Click(object sender, EventArgs e)
{
ZoomIn();
}
private void toolStripButton2_Click(object sender, EventArgs e)
{
ZoomOut();
}
#endregion
}
}
|