diff --git a/src/Web/Avalonia.Web.Blazor/BlazorSkiaGpuRenderTarget.cs b/src/Web/Avalonia.Web.Blazor/BlazorSkiaGpuRenderTarget.cs index ee7374634f..fa6a39f210 100644 --- a/src/Web/Avalonia.Web.Blazor/BlazorSkiaGpuRenderTarget.cs +++ b/src/Web/Avalonia.Web.Blazor/BlazorSkiaGpuRenderTarget.cs @@ -34,14 +34,6 @@ namespace Avalonia.Web.Blazor return new BlazorSkiaGpuRenderSession(_blazorSkiaSurface, _renderTarget); } - public bool IsCorrupted - { - get - { - var result = _size.Width != _renderTarget.Width || _size.Height != _renderTarget.Height; - - return result; - } - } + public bool IsCorrupted => _blazorSkiaSurface.Size != _size; } } diff --git a/src/Web/Avalonia.Web.Blazor/RazorViewTopLevelImpl.cs b/src/Web/Avalonia.Web.Blazor/RazorViewTopLevelImpl.cs index 1d667c0f0c..3cadbfaa60 100644 --- a/src/Web/Avalonia.Web.Blazor/RazorViewTopLevelImpl.cs +++ b/src/Web/Avalonia.Web.Blazor/RazorViewTopLevelImpl.cs @@ -44,6 +44,16 @@ namespace Avalonia.Web.Blazor { var newSize = new Size(size.Width, size.Height); + if (Math.Abs(RenderScaling - dpi) > 0.0001) + { + if (_currentSurface is { }) + { + _currentSurface.Scaling = dpi; + } + + ScalingChanged?.Invoke(dpi); + } + if (newSize != _clientSize) { _clientSize = newSize;