Добрый День.
Вопрос следующий: каким образом можно нарисовать на форме 1 точку (пиксел). Поискал в msdn, стандартных методов не нашел.
Например в Delphi можно сделать так Canvas.Pixels[x,y]:=clred. Есть ли аналог этому в C# ?
насколько я понимаю GDI+ "отошел" от понятий дискретности точек и сейчас "дружит" с флоатами, потому я не уверен в правомерности такой операции.
вот такое покатило. некрасиво, зато быстро и работает. Тот же фокус можно сделать с элипсом или линией.
Здравствуйте, _z, Вы писали:
_z>Вопрос следующий: каким образом можно нарисовать на форме 1 точку (пиксел). Поискал в msdn, стандартных методов не нашел. _z>Например в Delphi можно сделать так Canvas.Pixels[x,y]:=clred. Есть ли аналог этому в C# ?
Смотря, для чего вам нужно точку нарисовать. Например, если надо график какой изобразить, то я бы действовал так:
Сначала на форму нужно бросить контрол PictureBox ( PictureBox pictureBox1; ).
Дальше создаём битмап с нужным рисунком:
Bitmap bmp = new Bitmap(100, 100);
bmp.SetPixel(20, 30, Color.Black); // это один пиксел
// рисуем что-то посложнееusing (Graphics g = new Graphics(bmp))
{
Pen blackPen = new Pen(Color.Black, 3);
e.Graphics.DrawLine(blackPen, 2, 2, 50, 70);
}
// показываем пользователю
pictureBox1.Image = bmp;
Здравствуйте, Аноним, Вы писали:
А>using — это замена блокам try cftch?
Как пишет нам MSDN:
The using keyword has two major uses:
As a directive, when it is used to create an alias for a namespace or to import types defined in other namespaces.
As a statement, when it defines a scope at the end of which an object will be disposed.
Нам нужен второй вариант использования. Т.е. эти варианты кода эквиваленты:
SomeDisposableObject obj = new SomeDisposableObject();
// Some action
obj.Dispose();
using (SomeDisposableObject obj = new SomeDisposableObject())
{
// Some action
}
И рисование в битмап, а потом вставка в Picturebox не лушее решение. Лучше для графиков создать отдельный контрол, все равно работу придется проделать одинаковую, за исключением того, что не придется использовать лишние ресурсы системы заваливая ее кучей картинок.
Вот отличный пример: http://www.codeproject.com/cs/miscctrl/ChartControl.asp
Первый товарищ правильно заметил на счет рисования единственного пикселя — DrawRectangle единственный выход, по крайней мере, я бы им не пользовался, если бы знал другой