Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- imageBox1.Image = Properties.Resources.test;
- using System;
- using System.Drawing;
- using System.Windows.Forms;
- class ImageBox : Panel {
- public ImageBox() {
- this.AutoScroll = true;
- this.DoubleBuffered = true;
- }
- private Image mImage;
- public Image Image {
- get { return mImage; }
- set {
- mImage = value;
- if (mImage != null) this.AutoScrollMinSize = mImage.Size;
- else this.AutoScrollMinSize = new Size(0, 0);
- this.Invalidate();
- }
- }
- protected override void OnPaint(PaintEventArgs e) {
- e.Graphics.TranslateTransform(this.AutoScrollPosition.X, this.AutoScrollPosition.Y);
- if (mImage != null) e.Graphics.DrawImage(mImage, 0, 0);
- base.OnPaint(e);
- }
- }
- set {
- mImage = value;
- if (value == null) this.AutoScrollMinSize = new Size(0, 0);
- else {
- var size = value.Size;
- using (var gr = this.CreateGraphics()) {
- size.Width = (int)(size.Width * gr.DpiX / value.HorizontalResolution);
- size.Height = (int)(size.Height * gr.DpiY / value.VerticalResolution);
- }
- this.AutoScrollMinSize = size;
- }
- this.Invalidate();
- }
- Graphics.DrawImage Method (Image, Int32, Int32)
- ...
- Draws the specified image, using its original physical size,
- at the location specified by a coordinate pair.
- Remarks
- An Image stores a value for pixel width and a value for horizontal resolution
- (dots per inch). The physical width, measured in inches, of an image is
- the pixel width divided by the horizontal resolution. For example,
- an image with a pixel width of 216 and a horizontal resolution of 72 dots
- per inch has a physical width of 3 inches. Similar remarks apply to pixel
- height and physical height.
- The DrawImage method draws an image using its physical size, so the image will
- have its correct size in inches regardless of the resolution (dots per inch)
- of the display device. For example, suppose an image has a pixel width of 216
- and a horizontal resolution of 72 dots per inch. If you call DrawImage to
- draw that image on a device that has a resolution of 96 dots per inch,
- the pixel width of the rendered image will be (216/72)*96 = 288.
- e.Graphics.DrawImage(mImage, 0, 0, mImage.Width, mImage.Height);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement