📄 wndlesspicturebox.cs
字号:
namespace Imps.Client.Pc.WndlessControls
{
using System;
using System.Drawing;
using System.Windows.Forms;
public class WndlessPictureBox : WndlessControl
{
private System.Drawing.Image _image;
private PictureBoxSizeMode _sizeMode;
private Rectangle ImageRectangleFromSizeMode(PictureBoxSizeMode mode)
{
Rectangle clientRectangle = this.ClientRectangle;
int width = clientRectangle.Width;
int height = clientRectangle.Height;
if (this.Image != null)
{
switch (mode)
{
case PictureBoxSizeMode.Normal:
case PictureBoxSizeMode.AutoSize:
clientRectangle.Size = this.Image.Size;
return clientRectangle;
case PictureBoxSizeMode.StretchImage:
return clientRectangle;
case PictureBoxSizeMode.CenterImage:
clientRectangle.X += (clientRectangle.Width - this.Image.Width) / 2;
clientRectangle.Y += (clientRectangle.Height - this.Image.Height) / 2;
clientRectangle.Size = this.Image.Size;
return clientRectangle;
case ((PictureBoxSizeMode) 4):
{
Size size = this.Image.Size;
float num3 = Math.Min((float) (((float) width) / ((float) size.Width)), (float) (((float) height) / ((float) size.Height)));
clientRectangle.Width = (int) (size.Width * num3);
clientRectangle.Height = (int) (size.Height * num3);
clientRectangle.X += (width - clientRectangle.Width) / 2;
clientRectangle.Y += (height - clientRectangle.Height) / 2;
return clientRectangle;
}
}
}
return clientRectangle;
}
protected override void OnPaint(PaintEventArgs e)
{
if (this.Image != null)
{
Rectangle rect = this.ImageRectangleFromSizeMode(this.SizeMode);
if (base.Enabled)
{
e.Graphics.DrawImage(this.Image, rect);
}
else
{
ControlPaint.DrawImageDisabled(e.Graphics, this.Image, rect.X, rect.Y, base.BackColor);
}
}
}
public bool AutoSize
{
get
{
return base.AutoSize;
}
set
{
base.AutoSize = value;
if (value)
{
this._sizeMode = PictureBoxSizeMode.AutoSize;
}
else if (this._sizeMode == PictureBoxSizeMode.AutoSize)
{
this._sizeMode = PictureBoxSizeMode.Normal;
}
}
}
public System.Drawing.Image Image
{
get
{
return this._image;
}
set
{
if (this._image != value)
{
this._image = value;
if (this.AutoSize)
{
base.DoAutoSize(false);
}
base.Invalidate();
}
}
}
public override Size PreferredClientSize
{
get
{
if (this.Image != null)
{
return this.Image.Size;
}
return base.PreferredClientSize;
}
}
public PictureBoxSizeMode SizeMode
{
get
{
return this._sizeMode;
}
set
{
if (this._sizeMode != value)
{
this._sizeMode = value;
base.AutoSize = this._sizeMode == PictureBoxSizeMode.AutoSize;
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -