我需要在由c#类库创建的弹出窗口中显示位图图像。 这怎么可能?
我尝试了以下内容:
Bitmap img = tpv.Img();
Graphics graphics = Graphics.FromImage(img);
graphics.DrawImage(img, 0, 0);
和
Bitmap img = tpv.Img();
PictureBox pb = new PictureBox();
pb.Size = img.Size;
pb.Image = img;
pb.Show();
然而,窗口没有显示。 是否有可能让类库创建一个显示位图图像的弹出窗口?
答案 0 :(得分:11)
假设WinForms,您需要将PictureBox添加到顶级窗口,如Form。如果您使用WPF,则概念是相同的,除了您在显示窗口之前将图片框添加到网格或其他内容。
using (Form form = new Form()) {
Bitmap img = tpv.Img();
form.StartPosition = FormStartPosition.CenterScreen;
form.Size = img.Size;
PictureBox pb = new PictureBox();
pb.Dock = DockStyle.Fill;
pb.Image = img;
form.Controls.Add(pb);
form.ShowDialog();
}
请注意,在我的示例中,它会将表单显示为模态。如果您需要非模态表单,请调用form.Show()
并删除using
块,以便不立即处理您的表单。
但是,更好的设计模式是设计类库方法以将图像返回到UI,并让主UI显示图像。框架API永远不应该像这样直接显示UI。