8

ac# クラス ライブラリによって作成されたポップアップ ウィンドウにビットマップ イメージを表示する必要があります。これはどのように可能ですか?

私は次のことを試しました:

        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();

ただし、ウィンドウは表示されません。ビットマップ イメージを表示するポップアップ ウィンドウを作成するクラス ライブラリを取得することは可能ですか?

4

1 に答える 1

14

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を直接表示してはなりません。

于 2012-04-16T13:58:00.960 に答える