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

标签 c# image bitmap popup class-library

我需要在由 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();

但是没有显示窗口。 是否可以获取类库来创建显示位图图像的弹出窗口?

最佳答案

假设使用 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 block ,这样您的表单就不会立即被处理掉。

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

关于c# - 在 C# 类库的弹出窗口中显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10175301/

相关文章:

html - 流体布局中的 CSS 定位和偏移

javascript - 为什么div的高度会在图像和div之间产生差距?

android - 位图太大

c# - 加载 BitmapSource 并在 WPF -> IOException 中使用相同的名称保存

c# - 在 Debug模式下发布了一个 asp.net Web 应用程序?

c# - 将本地 CSS 文件加载到 Xamarin IOS WebView 中?

c# - 是否可以在 C# WPF 中在运行时添加图像资源?

c++ - 在 C++/OpenGL 中加载 tga/bmp 文件

Android相机位图内存泄漏

c# - 如何使用通用 Windows 平台 (UWP) 应用程序执行进程命令(或类似命令)?