【发布时间】:2015-12-21 20:03:14
【问题描述】:
我有一个 Picturebox,我在其中绘制了一个视图(在这种情况下为甘特视图),它工作正常 - 即,视图已绘制并且 AutoScroll 属性允许 PictureBox 中的图像平滑滚动。
我的问题是,当我向下滚动图像时,图像的标题(例如,本例中的日期标题)会从显示屏顶部滚动出来。
我无法解决的是如何将标题固定到顶部。我想过简单地将标题绘制到另一个图片框,但是我不确定如何将标题与主图片框的左右滚动同步
有人可以建议处理此问题的最佳方法,还是我需要恢复为直接绘制并自己处理滚动?
我在 VS 2015 中使用 VB。
非常感谢
菲尔
已更新 - 我现在正在使用屏幕外位图,但有人可以查看下面的代码并让我知道是否有更快/更好的方法来执行此操作吗?这一切都有效,但仍在学习,因此总是希望以最好的方式做事
Public Sub MoveViewPoint(G As Graphics)
' G passed in from controls Paint
G.Clear(Color.WhiteSmoke)
' _Plan is off-screen bitmap of image
' _HeaderHeight is height of the Header area in _Plan
Dim Header_src_rect As New Rectangle(_HScroll.Value, 0, _Plan.Width, _HeaderHeight)
Dim Header_dst_rect As New Rectangle(0, 0, _Plan.Width, _HeaderHeight)
G.DrawImage(_Plan, Header_dst_rect, Header_src_rect, GraphicsUnit.Pixel)
Dim src_rect As New Rectangle(_HScroll.Value, _HeaderHeight + 1 + _VScroll.Value, _Plan.Width, _Plan.Height)
Dim dst_rect As New Rectangle(0, _HeaderHeight + 1, _Plan.Width, _Plan.Height)
G.DrawImage(_Plan, dst_rect, src_rect, GraphicsUnit.Pixel)
_HScroll.LargeChange = G.ClipBounds.Width * 0.9
_VScroll.LargeChange = G.ClipBounds.Height * 0.9
End Sub
【问题讨论】:
标签: vb.net picturebox autoscroll