在c#类库的弹出窗口中显示图像

在c#类库的弹出窗口中显示图像,c#,image,bitmap,popup,class-library,C#,Image,Bitmap,Popup,Class Library,我需要在c#类库创建的弹出窗口中显示位图图像。 这怎么可能 我尝试了以下方法: Bitmap img = tpv.Img(); Graphics graphics = Graphics.FromImage(img); graphics.DrawImage(img, 0, 0); 及 但是,没有显示窗口。 是否可以使用类库创建一个显示位图图像的弹出窗口?假设使用WinForms,则需要将PictureBox添加到类似表单的顶级窗口中。如果您使用的是

我需要在c#类库创建的弹出窗口中显示位图图像。 这怎么可能

我尝试了以下方法:

        Bitmap img = tpv.Img();
        Graphics graphics = Graphics.FromImage(img);
        graphics.DrawImage(img, 0, 0);

但是,没有显示窗口。
是否可以使用类库创建一个显示位图图像的弹出窗口?

假设使用WinForms,则需要将PictureBox添加到类似表单的顶级窗口中。如果您使用的是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()
,并使用块删除
,这样您的表单不会立即被释放


然而,更好的设计模式是设计类库方法将图像返回到UI,并让主UI显示图像。框架API不应该像这样直接显示UI。

我们是在谈论winforms、asp.net还是WPF应用程序?非常感谢。这是一个没有任何GUI的测试框架,所以这只是一个“调试”/“随机检查”选项。这不能正常工作!它应该是form.ClientSize=img.Size;所写的代码将图像底部切掉。
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();
}