Задать вопрос
@Nimus2000

Почему курсор мышки перестал совпадать с позицией на экране?

Сто тысячь раз этот код писал все работало, сейчас не могу найти что поменялось, где ошибка, та 2 строчки. Может там невидимый текст. Проплавило конкретно.
Не совпадает курсор мышки, с позицией, он как-будто скалиться, ни каких трансформаций на элементе нету.
private void canvas_PaintSurface(object sender, SkiaSharp.Views.Desktop.SKPaintSurfaceEventArgs e)
    { 
        var g = e.Surface.Canvas;
        g.Clear(SKColors.PapayaWhip); 
        var pos = new Vector2((float)cur.X, (float)cur.Y);

        g.DrawCircle(pos, 10, new SKPaint() { Color = SKColors.Red }); 
    }
    Point last;
    Point cur;
    private void canvas_MouseMove(object sender, MouseEventArgs e)
    {
        cur= e.GetPosition(canvas);
      
    }
  • Вопрос задан
  • 83 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
VoidVolker
@VoidVolker Куратор тега C#
Dark side eye. А у нас печеньки! А у вас?
Переключите масштабирование экрана в 100% и проверьте код - всё должно работать как было. В WPF накрутили свои фичи вокруг масштабирования и теперь даже банальное размещение окна в нужной позиции и нужного размера - это цирк с конями на велосипедах, жонглирующими хомяками-акробатами. К сожалению под рукой нет кода, но он легко гуглится по ключевым словам типа WPF DPI real cursor position / real window position. Там надо для каждого экрана получать DPI и использовать его для получения WPF координат или реальных координат на экране.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы