Как уже было сказано, вы не можете распараллелить на уровне задачи или даже на целевом уровне. Только MSBuild будет строить проекты (т.е. файлы проектов MSBuild) параллельно. Поэтому вы должны использовать задачу MSBuild с указанием нескольких проектов, а для атрибута BuildInParallel должно быть установлено значение true. Также убедитесь, что при сборке из командной строки вызывается ключ / m.
Сайед Ибрагим Хашими
Моя книга: Внутри Microsoft Build Engine: использование MSBuild и Team Foundation Build
Поместите PictureBox в форму и установите для него BackColor значение White. Затем добавьте этот код в свою форму (вы должны фактически подключить события мыши ниже, т.е. вы не можете просто скопировать и вставить этот код в свою форму):
private Point? _Previous = null;
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
_Previous = e.Location;
pictureBox1_MouseMove(sender, e);
}
private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
if (_Previous != null)
{
if (pictureBox1.Image == null)
{
Bitmap bmp = new Bitmap(pictureBox1.Width, pictureBox1.Height);
using (Graphics g = Graphics.FromImage(bmp))
{
g.Clear(Color.White);
}
pictureBox1.Image = bmp;
}
using (Graphics g = Graphics.FromImage(pictureBox1.Image))
{
g.DrawLine(Pens.Black, _Previous.Value, e.Location);
}
pictureBox1.Invalidate();
_Previous = e.Location;
}
}
private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
{
_Previous = null;
}
А затем отойдите!
Если хотите, вы можете несколько улучшить качество нарисованного изображения, установив свойство SmoothingMode
объекта Graphics
.
Обновление: .Net CF не имеет перьев Коллекция
, а MoustEventArgs
не имеет Location
, поэтому вот версия с поддержкой CF:
private Point? _Previous = null;
private Pen _Pen = new Pen(Color.Black);
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
_Previous = new Point(e.X, e.Y);
pictureBox1_MouseMove(sender, e);
}
private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
if (_Previous != null)
{
if (pictureBox1.Image == null)
{
Bitmap bmp = new Bitmap(pictureBox1.Width, pictureBox1.Height);
using (Graphics g = Graphics.FromImage(bmp))
{
g.Clear(Color.White);
}
pictureBox1.Image = bmp;
}
using (Graphics g = Graphics.FromImage(pictureBox1.Image))
{
g.DrawLine(_Pen, _Previous.Value.X, _Previous.Value.Y, e.X, e.Y);
}
pictureBox1.Invalidate();
_Previous = new Point(e.X, e.Y);
}
}
private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
{
_Previous = null;
}
Вы можете сделать это, зафиксировав событие mousemove графического окна, а затем получив графику из графического окна, например:
Графика g = pictureBox.CreateGraphics (); затем вы можете рисовать все, что хотите, используя этот графический объект