0

私は GDI+ を学習しており、スクロール バー付きの表示ウィンドウを作成しようとしています (そのため、一度に画像の一部しか表示できず、スクロールできます)。私は GDI+ の基本をいくつかの本から読みましたが、このようなより高度なことを行うための優れたチュートリアルをオンラインでも本でも見つけることができませんでした。

これを行う方法に関するガイドまたはサンプルコードに関する推奨事項はありますか?

これが私がこれまでに持っているものです

protected override void OnPaint(PaintEventArgs e)
{
    base.OnPaint(e);
    if (Label != null)
    {
        using (Bitmap drawnLabel = new Bitmap(Label.LabelHeight, Label.LableLength, System.Drawing.Imaging.PixelFormat.Format1bppIndexed))
        using (Graphics drawBuffer = Graphics.FromImage(drawnLabel))
        {
            drawBuffer.ScaleTransform(_ImageScaleFactor, _ImageScaleFactor);
            foreach (Epl2.IDrawableCommand cmd in Label.Collection)
            {
                cmd.Paint(drawBuffer);
            }
            drawBuffer.ResetTransform();
        }
    }
}

これをコントロールにペイントして、で表示されるものをPictureBoxコントロールしたいのですが、その手順を実行する方法がわかりません。VScrollBarHScrollBar

PS Label は、私の名前空間にあるカスタム クラスです。これは、ラベル プリンターから印刷するラベルを表すオブジェクトです。

4

1 に答える 1

2

あなたがする必要があるのは:

  • フォーム上(または再利用のためにUserControl内)でPanelコントロールをホストします
  • PanelAutoScrollプロパティをTrueに設定します
  • PictureBoxコントロールをPanelの子にします
  • PictureBoxコントロールのサイズを、実行時に含まれる画像のサイズに変更します

Panelコントロールは、必要に応じて垂直および水平のスクロールバーを表示し、探している機能を正確に提供します。

独自のズームを行うには、実際にはPictureBoxコントロールを使用しない場合があります。上記の手順に従いますが、PictureBoxの代わりに、親パネル内で別のPanelをホストし、必要に応じてサイズを変更し、ズーム用のPaintイベントを処理します。

于 2010-04-16T18:46:49.580 に答える