Пытаюсь по клику мыши (её координатам) отобразить прямоугольник, но он почему то отрисовывается немного левее и выше относительно курсора, а не из под курсора, в чём проблема ?
Пробовал ещё и с линией, тоже присутствует смещение(
Цель отрисовывать из под курсора.
Координаты получаю так:
private void Window_MouseDown(object sender, MouseButtonEventArgs e)
{
Point point = PointToScreen(Mouse.GetPosition(this));
RisuemPryamougolnik(point.X, point.Y);
}
Отображаю прямоугольник по клику так:
private void RisuemPryamougolnik(double x,double y)
{
Rectangle rect = new Rectangle();
rect.Height = 50;
rect.Width = 50;
// rect.Fill = Brushes.Aqua;
rect.Stroke = Brushes.Aqua;
rect.StrokeThickness = 1;
canvas.Children.Add(rect);
Canvas.SetLeft(rect, x);
Canvas.SetTop(rect, y);
}
Измеряйте позицию относительно вашего Canvas
, а не относительно окна, ну и не нужно приводить координаты к экранным, т.к. они будут отличаться если включено масштабирование Windows (или при DPI отличном от 96):
Point point = Mouse.GetPosition(canvas);
или
Point point = e.GetPosition(canvas);
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Мне надо обработать 20 элементов, полученных с помощью jsonЭлементы могут быть двух типов, и для каждого надо запросить разную дополнительную...