使用GDI +的.NET中的可滚动控件和区域

时间:2011-03-10 00:05:53

标签: c# .net scroll gdi+

我无法理解使用C#,.NET 3.5和GDI +在自定义控件中创建可滚动区域的正确方法。

Microsoft是否有任何关于正确方法的文档?网上的任何地方都有一个不错的入门书吗?

我的担忧主要是:如果我在内存中创建一个大型图形画布,那么画布可以(应该是多大)的具体细节是什么?有哪些性能考虑因素?我应该提前渲染多少可滚动区域?

例如,如果我从预先存在的数据渲染一个非常大的图形绘图,我应该将整个绘图渲染到图形内存然后将其blit到“可滚动”区域吗?或者,是否会耗尽可用的图形相关内存并开始写入页面文件?

澄清:

例如,每次滚动时,通过重新渲染所有元素,您的web-broser不会“重绘”客户区。页面的静态元素将渲染一次到大表面,当您移动滚动条时,只需修改预渲染的起始偏移。

这就是我想要的那种行为。我不想在绘制事件上“绘制我的滚动范围的起始值和结束值之间的内容”。

1 个答案:

答案 0 :(得分:1)

如果您正在谈论WinForms - 从ScrollableControl派生您的控件。定义客户端大小,并在OnPaint中绘制适当的部分。

控件处理所有滚动详细信息