简介

KryptonPictureBox 是增强型图片框控件,替代标准 System.Windows.Forms.PictureBox。它跟随 Krypton 主题渲染边框和背景,支持各种图片缩放模式(SizeMode),常用于显示头像、缩略图、Logo、预览图等。相比标准 PictureBox,它能与整体 Krypton 界面风格保持一致。

KryptonPictureBox 示例截图
KryptonPictureBox 显示图片的不同缩放模式

常用属性

属性类型说明
ImageImage显示的图片对象
ImageLocationstring图片文件路径或 URL
SizeModePictureBoxSizeMode图片缩放模式(Normal / StretchImage / Zoom / CenterImage 等)
InitialImageImage加载图片前显示的占位图
ErrorImageImage加载失败时显示的错误图
BackColorColor背景色
BorderStyleBorderStyle边框样式(None / FixedSingle / Fixed3D)
StateCommon.Border.Color1ColorKrypton 主题边框颜色
StateCommon.Back.Color1ColorKrypton 主题背景色
WaitOnLoadbool是否同步等待图片加载完成

快速上手

基本用法(显示图片)

using Krypton.Toolkit;

// 创建图片框
var picLogo = new KryptonPictureBox();
picLogo.Image = Properties.Resources.app_logo;
picLogo.SizeMode = PictureBoxSizeMode.Zoom;
picLogo.Location = new Point(20, 20);
picLogo.Size = new Size(200, 120);

this.Controls.Add(picLogo);

从文件加载图片

var picPreview = new KryptonPictureBox();
picPreview.SizeMode = PictureBoxSizeMode.Zoom;
picPreview.Size = new Size(300, 200);

// 方式一:直接加载文件
picPreview.ImageLocation = @"D:\Photos\preview.jpg";

// 方式二:从流加载
using (var fs = new FileStream(path, FileMode.Open))
{
    picPreview.Image = Image.FromStream(fs);
}

进阶用法

头像预览与选择

// 头像选择器
var picAvatar = new KryptonPictureBox();
picAvatar.SizeMode = PictureBoxSizeMode.Zoom;
picAvatar.Size = new Size(96, 96);
picAvatar.Image = Properties.Resources.default_avatar;
picAvatar.BorderStyle = BorderStyle.FixedSingle;
picAvatar.Cursor = Cursors.Hand;

// 点击选择新头像
picAvatar.Click += (s, e) =>
{
    using (var dlg = new KryptonOpenFileDialog())
    {
        dlg.Filter = "图片文件|*.png;*.jpg;*.jpeg;*.bmp";
        dlg.Title = "选择头像";
        if (dlg.ShowDialog() == DialogResult.OK)
        {
            picAvatar.ImageLocation = dlg.FileName;
        }
    }
};

自定义边框与占位图

// 缩略图卡片风格
var picThumb = new KryptonPictureBox();
picThumb.SizeMode = PictureBoxSizeMode.Zoom;
picThumb.Size = new Size(160, 120);

// 加载前显示占位图
picThumb.InitialImage = Properties.Resources.placeholder;
picThumb.ErrorImage = Properties.Resources.image_error;

// 翡翠绿边框
picThumb.StateCommon.Border.Color1 = Color.FromArgb(15, 118, 110);
picThumb.StateCommon.Border.Width = 1;
picThumb.StateCommon.Back.Color1 = Color.FromArgb(249, 250, 251);

// 异步加载网络图片
picThumb.WaitOnLoad = false;
picThumb.LoadAsync("https://example.com/thumbnail.png");
提示:显示大图时建议使用 SizeMode = Zoom(等比缩放完整显示)或 StretchImage(拉伸填满)。加载大文件前设置 InitialImage 可提升用户体验。释放旧图片时注意先保存引用再 Dispose,避免内存泄漏。

对应示例项目

📁 Source/Krypton Toolkit Examples/KryptonPictureBox Examples/

包含:基本显示、缩放模式对比、头像选择、异步加载演示。

相关控件