1

CanvasVirtualControlraises时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
4

0 回答 0