2012-04-23 9 views
1

У меня проблема с моим проектом C# Windows-Forms. Я пытаюсь нарисовать квадрат, и я хочу отобразить квадрат внутри коробки с картинками. Как я могу это сделать?Как нарисовать квадрат в PictureBox?

Это моя функция для рисования квадрата:

public void DrawingSquares(int x, int y)//the function gets x and y to know where to print the square. 
    { 
     Graphics graphicsObj; 
     graphicsObj = this.CreateGraphics(); 
     Pen myPen = new Pen(Color.Black, 5); 
     Rectangle myRectangle = new Rectangle(x, y, 100, 100); 
     graphicsObj.DrawRectangle(myPen, myRectangle); 
    } 

ответ

2

my vs solution

using System.Drawing; 
using System.Drawing.Drawing2D; 
using System.Drawing.Imaging; 
using System.Windows.Forms; 

namespace WindowsFormsApplication1 
{ 
    public partial class Form1 : Form 
    { 
    public Form1() 
    { 
     InitializeComponent(); 

     this.pictureBox1.Image = this.Draw(this.pictureBox1.Width, this.pictureBox1.Height); 
    } 

    public Bitmap Draw(int width, int height) 
    { 
     var bitmap = new Bitmap(width, height, PixelFormat.Format32bppArgb); 
     var graphics = Graphics.FromImage(bitmap); 
     graphics.SmoothingMode = SmoothingMode.AntiAlias; 
     graphics.FillRectangle(new SolidBrush(Color.Tomato), 10, 10, 100, 100); 

     return bitmap; 
    } 
    } 
} 

это мой Form1.cs

вы должны иметь что-то напоминает формат

+0

, когда я заменяю мою функцию на свою функцию, ее stiil дает мне много сожалений :( –

+0

Ошибка Имя «PixelFormat» не существует в текущем контексте \t c: \ users \ 08_11_2010 \ documents \ visual studio 2010 \ Projects \ WindowsFormsApplication3 \ WindowsFormsApplication3 \ Form1.cs WindowsFormsApplication3 –

+0

Ошибка имя 'SmoothingMode' не существует в текущем контексте \t C: \ Users \ 08_11_2010 \ Documents \ Visual Studio 2010 \ Projects \ WindowsFormsApplication3 \ WindowsFormsApplication3 \ Form1.cs \t WindowsFormsApplication3 –

-1
public Bitmap Draw() 
{ 
    var bitmap = new Bitmap(width,height, PixelFormat.Format32bppArgb); 
    var graphics = Graphics.FromImage(bitmap); 
    graphics.SmoothingMode = SmoothingMode.AntiAlias; 
    graphics.FillRectangle(new SolidBrush(Color.Tomato), 10, 10, 100, 100); 
} 

this.pictureBox1.Image = new PieChart().Draw(); 

так что если вы просто вернуть битовую карту, он работает

+0

где я showld горшок что? –

+0

в моем чертеже square fuction –

+0

публичный Drawmap Draw заменяет вашу квадратную функцию, вы можете переименовать тот, который я написал, если хотите. this.pictureBox1.Image = new PieChart(). Draw(); принадлежит в той части, которую вы хотите, назначьте свою фотографию в ящик изображений – Pascal

1

Вы должны добавить PaintEventHandler внутри изображения коробки и нарисуйте прямоугольник внутри него:

private void pictureBox1_Paint(object sender, PaintEventArgs e) 
{ 
    ... 
    e.Graphics.DrawRectangle(myPen, myRectangle); 
} 
Смежные вопросы