通过图形改变图像不会以形式呈现
Altering Image via Graphics wont render in form
我正在使用以下代码尝试在图片框内的图像上绘制,但是更改并未呈现在表单本身上。
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
if (drawMode)
{
Graphics g = Graphics.FromImage(pictureBox1.Image);
RectangleF rectf = new RectangleF(10, 10, 100, 100);
g.SmoothingMode = SmoothingMode.AntiAlias;
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.PixelOffsetMode = PixelOffsetMode.HighQuality;
g.DrawString("yourText", new Font("Tahoma", 22), Brushes.Green, rectf);
g.Flush();
....
编辑:代码现在位于 picturebox1 对象的 PaintEventHandler 中。
我不太清楚你为什么要这样做,或者这是否正确。但通常情况下,您希望在 PictureBox
...
的 Paint
事件中进行绘图
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
//draw here, but DONOT call the Invalidate method
}
如果您只想在表单收到一些用户输入(例如按钮单击)时进行绘图。使用布尔标志来确定在 Paint
事件中绘制的时间和内容。然后在按钮单击处理程序中,使 PictureBox
无效
我正在使用以下代码尝试在图片框内的图像上绘制,但是更改并未呈现在表单本身上。
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
if (drawMode)
{
Graphics g = Graphics.FromImage(pictureBox1.Image);
RectangleF rectf = new RectangleF(10, 10, 100, 100);
g.SmoothingMode = SmoothingMode.AntiAlias;
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.PixelOffsetMode = PixelOffsetMode.HighQuality;
g.DrawString("yourText", new Font("Tahoma", 22), Brushes.Green, rectf);
g.Flush();
....
编辑:代码现在位于 picturebox1 对象的 PaintEventHandler 中。
我不太清楚你为什么要这样做,或者这是否正确。但通常情况下,您希望在 PictureBox
...
Paint
事件中进行绘图
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
//draw here, but DONOT call the Invalidate method
}
如果您只想在表单收到一些用户输入(例如按钮单击)时进行绘图。使用布尔标志来确定在 Paint
事件中绘制的时间和内容。然后在按钮单击处理程序中,使 PictureBox