Перерисовать только часть холста — .net Maui ⇐ C#
Перерисовать только часть холста — .net Maui
В моем приложении .net Maui я хочу нарисовать на холсте пульсирующий круг. Я пробовал просто аннулировать графическое представление 15 раз в секунду (для достижения 15 кадров в секунду). Однако, поскольку холст намного больше, чем просто этот пульсирующий круг, этот подход очень медленный, и я это понимаю.
Есть ли способ перерисовать только ту область, где находится круг, или разместить ее на отдельном слое и перерисовывать только ее?
Или есть ли другой способ разместить подобную анимацию на холсте?
Рисуемый:
public void Draw(ICanvas Canvas, RectFгрязныйRect) { // Рисуем фон изображения. если (_image != ноль) { Canvas.DrawImage(_image, Padding + _translationX, Padding + _translationY, _width, _height); } // Рисуем что-то еще // Рисуем пульсирующий круг холст.DrawCircle(_x, _y, _radius); холст.FillColor = Цвета.Красный; холст.FillCircle(_x, _y, _radius); вар radiusStep =грязныйRect.Width/15; _шаг++; если (_шаг > 15) { _шаг = 1; } Canvas.DrawCircle(_x, _y, radiusStep * _step); }
В моем приложении .net Maui я хочу нарисовать на холсте пульсирующий круг. Я пробовал просто аннулировать графическое представление 15 раз в секунду (для достижения 15 кадров в секунду). Однако, поскольку холст намного больше, чем просто этот пульсирующий круг, этот подход очень медленный, и я это понимаю.
Есть ли способ перерисовать только ту область, где находится круг, или разместить ее на отдельном слое и перерисовывать только ее?
Или есть ли другой способ разместить подобную анимацию на холсте?
Рисуемый:
public void Draw(ICanvas Canvas, RectFгрязныйRect) { // Рисуем фон изображения. если (_image != ноль) { Canvas.DrawImage(_image, Padding + _translationX, Padding + _translationY, _width, _height); } // Рисуем что-то еще // Рисуем пульсирующий круг холст.DrawCircle(_x, _y, _radius); холст.FillColor = Цвета.Красный; холст.FillCircle(_x, _y, _radius); вар radiusStep =грязныйRect.Width/15; _шаг++; если (_шаг > 15) { _шаг = 1; } Canvas.DrawCircle(_x, _y, radiusStep * _step); }
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение