2010-04-16 48 views
0

我正在学习GDI +,并且正在尝试使用滚动条创建显示窗口(所以我一次只能看到图像的一部分,并且可以滚动它)。我已经从几本书中读了GDI +的基础知识,但是我还没有在网上找到任何好的教程,或者在我可以使用的书籍中找到有关做更高级的事情。创建一个图像查看器窗口controll

对指南或示例代码的任何建议如何做到这一点?

这里是我迄今为止

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. 标签是一个自定义类,在我的名称空间中,它是一个代表要从标签打印机打印的标签的对象。

回答

2

你需要做的是:

  • 主机窗体上的Panel控件(或重用一个用户控件)
  • 设置面板AutoScroll属性为True
  • 做一个PictureBox控件该小组的孩子
  • 调整PictureBox控件它包含在运行时

小组共同图像的大小ntrol将根据需要显示垂直和水平滚动条,为您提供所需的功能。

要做你自己的缩放,你可能实际上放弃了PictureBox控件。按照上面的步骤,而不是一个PictureBox,主父面板内的另一个面板,根据需要调整大小,并处理其缩放的Paint事件。