当我运行以下代码时:
private void button1_Click(object sender, EventArgs e)
{
Bitmap b = new Bitmap(300, 400);
using (Graphics g = Graphics.FromImage(b))
{
g.FillRectangle(Brushes.Black, new Rectangle(0, 0, 300, 400));
}
b.RotateFlip(RotateFlipType.Rotate90FlipNone);
using (Graphics g2 = Graphics.FromImage(b))
{
g2.DrawRectangle(new Pen(Color.White, 7.2f), 200, 100, 150, 100);
}
using (Graphics g3 = this.panel1.CreateGraphics())
{
g3.DrawImage(b, 0, 0);
}
}
我得到以下信息:
替代文字 http://www.freeimagehosting.net/uploads/2c309ec21c.png
笔记:
只有当我旋转图像,然后绘制一个超出图像原始尺寸的矩形时才会发生这种情况。
矩形不会被截断为原始图像宽度 - 只是矩形的右边缘没有被绘制。
这发生在各种场景中。我首先在一个更复杂的应用程序中注意到它——我只是写了这个应用程序来简单说明这个问题。
谁能看到我做错了什么?