123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- using System.ComponentModel;
- using System.Drawing;
- namespace System.Windows.Forms
- {
- public class PictureBox : Control, ISupportInitialize
- {
- private System.Windows.Controls.Image imageControl;
- protected new System.Windows.Controls.ContentControl control { get; }
- private Image image;
- public Image Image
- {
- get => image;
- set
- {
- image = value;
- imageControl.Source = Helper.GetImage(value);
- UpdateAutoSize();
- }
- }
- private PictureBoxSizeMode sizeMode;
- public PictureBoxSizeMode SizeMode
- {
- get => sizeMode;
- set
- {
- sizeMode = value;
- imageControl.Stretch = sizeMode switch
- {
- PictureBoxSizeMode.StretchImage => Media.Stretch.Fill,
- PictureBoxSizeMode.Zoom => Media.Stretch.Uniform,
- _ => Media.Stretch.None
- };
- if (sizeMode == PictureBoxSizeMode.Normal)
- {
- imageControl.HorizontalAlignment = Windows.HorizontalAlignment.Left;
- imageControl.VerticalAlignment = Windows.VerticalAlignment.Top;
- }
- else if (sizeMode == PictureBoxSizeMode.CenterImage)
- {
- imageControl.HorizontalAlignment = Windows.HorizontalAlignment.Center;
- imageControl.VerticalAlignment = Windows.VerticalAlignment.Center;
- }
- else
- {
- imageControl.HorizontalAlignment = Windows.HorizontalAlignment.Stretch;
- imageControl.VerticalAlignment = Windows.VerticalAlignment.Stretch;
- }
- UpdateAutoSize();
- }
- }
- private void UpdateAutoSize()
- {
- if (SizeMode == PictureBoxSizeMode.AutoSize)
- {
- Width = Image == null ? 0 : Image.Width;
- Height = Image == null ? 0 : Image.Height;
- }
- }
- public void BeginInit() { }
- public void EndInit() { }
- public PictureBox()
- {
- imageControl = new();
- control = new();
- control.Content = imageControl;
- SetControl(control);
- }
- }
- }
|