创建图像查看器窗口控件

时间:2010-04-16 18:38:19

标签: c# winforms gdi+ picturebox

我正在学习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显示的内容,但我不知道如何做到这一点步骤

P.S。 Label是我在命名空间中的自定义类,它是一个表示您将从标签打印机打印的标签的对象。

1 个答案:

答案 0 :(得分:2)

您需要做的是:

  • 在表单上托管Panel控件(或在UserControl中托管以供重用)
  • 将Panel AutoScroll属性设置为True
  • 使PictureBox控件成为Panel的子级
  • 将PictureBox控件的大小调整为运行时包含的图像大小

Panel控件将根据需要显示垂直和水平滚动条,为您提供您正在寻找的功能。

要进行自己的缩放,您可能实际上放弃了PictureBox控件。按照上述步骤,而不是PictureBox,在父面板中托管另一个Panel,根据需要调整大小并处理其Paint事件以进行缩放。