KryptonPictureBox ✓ LCode 已集成 Toolkit
命名空间:Krypton.Toolkit · 程序集:Krypton.Toolkit.dll
简介
KryptonPictureBox 是增强型图片框控件,替代标准 System.Windows.Forms.PictureBox。它跟随 Krypton 主题渲染边框和背景,支持各种图片缩放模式(SizeMode),常用于显示头像、缩略图、Logo、预览图等。相比标准 PictureBox,它能与整体 Krypton 界面风格保持一致。
常用属性
| 属性 | 类型 | 说明 |
|---|---|---|
Image | Image | 显示的图片对象 |
ImageLocation | string | 图片文件路径或 URL |
SizeMode | PictureBoxSizeMode | 图片缩放模式(Normal / StretchImage / Zoom / CenterImage 等) |
InitialImage | Image | 加载图片前显示的占位图 |
ErrorImage | Image | 加载失败时显示的错误图 |
BackColor | Color | 背景色 |
BorderStyle | BorderStyle | 边框样式(None / FixedSingle / Fixed3D) |
StateCommon.Border.Color1 | Color | Krypton 主题边框颜色 |
StateCommon.Back.Color1 | Color | Krypton 主题背景色 |
WaitOnLoad | bool | 是否同步等待图片加载完成 |
快速上手
基本用法(显示图片)
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/
包含:基本显示、缩放模式对比、头像选择、异步加载演示。