Я хочу нарисовать картинку с помощью Canvas в C#. Я должен контролировать цвет каждого пикселя изображения, поэтому я рисую его с помощью Rectangle.Почему я не могу рисовать пиксель по бокам?
public void AddPixel(Canvas canvas, double x, double y)
{
Rectangle rec = new Rectangle();
Canvas.SetTop(rec, y);
Canvas.SetLeft(rec, x);
rec.Width = 1;
rec.Height = 1;
rec.Fill = new SolidColorBrush(Colors.Black);
canvas.Children.Add(rec);
}
Это должно работать, но когда я хочу, чтобы проверить его и сделать просто черную картинку:
for (int y = 0; y < 50; y++)
{
for (int x = 0; x < 50; x++)
{
AddPixel(MandelbrotCanvas, x, y);
}
}
я получаю что-то вроде этого - прямоугольники с чем-то, как границы, пространство между пикселями:
Почему? Кто-то может помочь мне нарисовать черную картину?
Возможно, это связано с передачей '5' вместо' y' методу 'AddPixel'? – BradleyDotNET
Я скопировал неправильный код. Это изображение, которое я получаю, когда использую AddPixel (..., x, y) – Blagalin
Попробуйте добавить это: 'rec.SetValue (RenderOptions.EdgeModeProperty, EdgeMode.Aliased);'. Если это не сработает, попробуйте добавить 'rec.SnapsToDevicePixels = true;' – cubrr