当CanvasVirtualControl
raises时RegionsInvalidated
,它会提供屏幕上可见的区域列表:
private void OnRegionsInvalidated(CanvasVirtualControl sender, CanvasRegionsInvalidatedEventArgs e)
{
foreach (var region in e.InvalidatedRegions)
{
using (var ds = sender.CreateDrawingSession(region))
{
// draw stuff for that region
}
}
}
它返回的区域列表通常有一个大的和一两个小的。我理解它为什么这样做,但是无论如何告诉控件使用较小的最大位图大小,这样它最终会给我 4 个中等区域?
例如,当控件第一次加载时,它会引发RegionsInvalidated
以下区域:
Rect[0] => 2000x2000 pixels
Rect[1] => 120x30 pixels
一个大区域和另一个小区域,因为它知道我的 GPU 不允许大于 2000x2000 的位图(例如)。我想知道是否有一种方法可以覆盖它并告诉控件最大为 500x500,以便它返回如下结果:
Rect[0] => 500x500 pixels
Rect[1] => 500x500 pixels
Rect[2] => 500x500 pixels
Rect[3] => 500x500 pixels
Rect[4] => 120x30 pixels