C# 创建图像查看器窗口控件

C# 创建图像查看器窗口控件,c#,winforms,gdi+,picturebox,C#,Winforms,Gdi+,Picturebox,我正在学习GDI+,我正在尝试制作一个带有滚动条的显示窗口(这样我一次只能看到部分图像,并且可以在其中滚动)。我已经从几本书中通读了GDI+的基础知识,但我在网上或书中都没有找到关于做类似这样更高级事情的好教程 关于如何实现这一点的指南或示例代码有何建议 这是我到目前为止所拥有的 protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); if (Label != null) {

我正在学习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();
        }
    }
}
我想把这画成我在控件上的a,控件a显示了什么,但我不知道如何做这一步

附言。
Label是我的命名空间中的一个自定义类,它是一个表示要从标签打印机打印的标签的对象。

您需要做的是:

  • 在窗体(或UserControl中)上宿主面板控件以供重用
  • 将“面板自动滚动”属性设置为True
  • 将PictureBox控件设为面板的子控件
  • 将PictureBox控件的大小调整为运行时包含的图像大小
面板控件将根据需要显示垂直和水平滚动条,为您提供所需的功能

要进行自己的缩放,您可能实际上放弃了PictureBox控件。按照上述步骤进行操作,但不要使用PictureBox,而是在父面板内放置另一个面板,根据需要调整其大小,并处理其绘制事件以进行缩放