Я написал небольшую программу, которая должна отображать эллипс в точном положении мыши. Проблема в том, что, как я делаю это прямо сейчас, положение мыши и эллипса является точным только в центре экрана. Если я поместим мышь дальше в окно, они все дальше и дальше уходят.Установить положение элемента UI на позицию мыши
Я использую элемент MouseOver для обновления положения мыши.
Вот мой код:
private void Window_MouseMove(object sender, MouseEventArgs e)
{
Main_Grid.Children.Clear();
MousePos_Ellipse = new Ellipse();
Point MousePos_Point = new Point();
MousePos_Point = Mouse.GetPosition(Main_Grid);
Main_Grid.Children.Remove(MousePos_Ellipse);
SolidColorBrush mySolidColorBrush = new SolidColorBrush();
mySolidColorBrush.Color = Color.FromArgb(55, 255, 255, 0);
MousePos_Ellipse.Fill = mySolidColorBrush;
MousePos_Ellipse.StrokeThickness = 2;
MousePos_Ellipse.Stroke = Brushes.Black;
// Set the width and height of the Ellipse.
MousePos_Ellipse.Width = 15;
MousePos_Ellipse.Height = 15;
// At this Point I do my Positioning
MousePos_Ellipse.Margin = new Thickness(left: MousePos_Point.X - (Main_Grid.ActualWidth/2) , top: MousePos_Point.Y - (Main_Grid.ActualHeight/2), right: 0 , bottom: 0);
//base.AddVisualChild(_circle);
// Add the Ellipse to the Grid
Main_Grid.Children.Add(MousePos_Ellipse);
}
использовать холст вместо сетки – thumbmunkeys
Элемент управления холстом - это элемент управления, который вы хотите использовать для явного позиционирования дочерних элементов. Вы получите проблемы в других элементах управления, которые реализуют конкретные стили макета. – kenjara