mono / SkiaSharp

SkiaSharp is a cross-platform 2D graphics API for .NET platforms based on Google's Skia Graphics Library. It provides a comprehensive 2D API that can be used across mobile, server and desktop models to render images.
MIT License
4.14k stars 522 forks source link

[BUG] SKXamlCanvas PointerwheelChanged not respecting DPI? #2807

Open TopperDEL opened 1 month ago

TopperDEL commented 1 month ago

Description

I'm not quite exactly sure what happens here. But I have an Uno-App that has a SKXamlCanvas filling nearly the whole screen. On my desktop, it works as expected. But running the app on a Surface device (with presumably different screen-size/DPI/whatever) the PointerWheelChanged-Event only gets invoked when the mouse pointer is in the top left corner of the Canvas. It feels like it is only nearly respecting half of the screen size.

The content rendered uses the whole screen, though, and other events like PointerDown get invoked correctly above every part of the canvas.

I'm using SkiaSharp.View.WinUI and SkiaSharp.Views.Uno.WinUI both in version 2.88.7.

Code

<sk:SKXamlCanvas
    x:Name="swapChain"
    PaintSurface="OnPaintSwapChain"
    PointerPressed="OnSurfacePointerPressed"
    PointerMoved="OnSurfacePointerMoved"
    PointerReleased="OnSurfacePointerReleased"
    PointerWheelChanged="OnSurfacePointerWheelChanged"
    PointerExited="OnPointerExited"
    DoubleTapped="OnSurfaceDoubleTapped"
    RightTapped="OnRightTapped"
    Background="Transparent"/>

Expected Behavior

The PointerWheelChanged-event gets raised in every location.

Actual Behavior

No response

Version of SkiaSharp

Other (Please indicate in the description)

Last Known Good Version of SkiaSharp

Other (Please indicate in the description)

IDE / Editor

Visual Studio (Windows)

Platform / Operating System

Windows

Platform / Operating System Version

No response

Devices

No response

Relevant Screenshots

No response

Relevant Log Output

No response

Code of Conduct