我正在制作一个简单的图像调试器可视化工具。代码如下。我不确定是否需要手动处置 Image 实例?因为我正在制作一个 Windows 窗体窗口和其中包含动态图像的 PictureBox .. 当窗体终止时我是否需要添加一些特殊代码来处理它?
这是代码..
using System.Diagnostics;
using System.Drawing;
using System.Windows.Forms;
using Microsoft.VisualStudio.DebuggerVisualizers;
using DebuggerVisualizers;
[assembly: DebuggerVisualizer(
typeof (ImageDebuggerVisualizer),
typeof (VisualizerObjectSource),
Target = typeof (Image),
Description = "Image Visualizer")]
namespace DebuggerVisualizers
{
public class ImageDebuggerVisualizer : DialogDebuggerVisualizer
{
protected override void Show(IDialogVisualizerService windowService, IVisualizerObjectProvider objectProvider)
{
Image image = (Image) objectProvider.GetObject();
Form form = new Form
{
Text = ("Image Visualizer - " + image.HorizontalResolution + " " + image.VerticalResolution),
Width = image.Width,
Height = image.Height
};
PictureBox pictureBox = new PictureBox {Image = image, SizeMode = PictureBoxSizeMode.AutoSize};
form.Controls.Add(pictureBox);
form.ShowDialog();
}
}
}
感谢您的帮助:)
最佳答案
将您的显示方法更改为:
protected override void Show(IDialogVisualizerService windowService,
IVisualizerObjectProvider objectProvider)
{
Image image = (Image) objectProvider.GetObject();
using (Form form = new Form())
{
PictureBox pictureBox = new PictureBox();
pictureBox.Image = image;
form.Controls.Add(pictureBox);
form.ShowDialog();
}
}
using(){} block 将在表单关闭后调用 Dispose,这也将处理表单上的所有内容。
关于.net - 我需要处理这个 Image 实例吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/317400/