что значит точка, пиксель? Возможно вам нужно создать наследника от System.Windows.FrameworkElement или если нужно просто разместить по координатам и с ним взаимодействовать не нужно, можно использовать System.Windows.Media.Visual
Или можно использовать стандартные элементы.
Вот отображение еды для змейки
GameCanvas это объект Canvas в котором происходит отрисовка.
void AddFood()
{
var random = new Random();
double x = random.Next(0, (int)(GameCanvas.ActualWidth / SnakeSize)) * SnakeSize;
double y = random.Next(0, (int)(GameCanvas.ActualHeight / SnakeSize)) * SnakeSize;
foodPosition = new Point(x, y);
Food.Width = SnakeSize;
Food.Height = SnakeSize;
Food.Fill = foodBrush;
Canvas.SetLeft(Food, x);
Canvas.SetTop(Food, y);
GameCanvas.Children.Add(Food);
}
Все дело в том, что системе сложно отрисовывать такое количество изменений. И дело не в копиях программы, а то что процессы отвечающую за отрисовку перегружены. 1. это нужно делать асинхронно. 2. если хочется прям используя winforms то нужно отключить автоматическое обновление и обновлять руками контролы.
Или можно использовать стандартные элементы.
Вот отображение еды для змейки
GameCanvas это объект Canvas в котором происходит отрисовка.