2012-04-16 155 views
4

我需要在由c#类库创建的弹出窗口中显示一个位图图像。 这怎么可能?在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

我们在谈论winforms,asp.net或WPF应用程序吗? – Josh 2012-04-16 13:54:05

回答

8

假设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(),并删除using区块,以免表单立即丢失。

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

+0

完美谢谢。它是一个没有任何GUI的测试框架,所以这只是一个“调试”/随机检查选项。 – 2012-04-17 05:52:32

+0

很高兴我能帮上忙。 :] – 2012-04-17 05:55:09