【发布时间】:2016-04-11 06:06:41
【问题描述】:
我有大小为 300*200 的用户控件。 和大小为 300*200 的矩形。
graphics.DrawRectangle(Pens.Black, 0, 0, 300, 200);
当我将 userControl 中的矩形旋转 30 度时,我得到了旋转的矩形,但它过大了。
PointF center = new PointF(150,100);
graphics.FillRectangle(Brushes.Black, center.X, center.Y, 2, 2); // draw center point.
using (Matrix matrix = new Matrix())
{
matrix.RotateAt(30, center);
graphics.Transform = matrix;
graphics.DrawRectangle(Pens.Black, 0, 0, 300, 200);
graphics.ResetTransform();
}
我想像实际结果一样适合矩形。Check Image here
任何人都可以解决这个问题。
谢谢。
【问题讨论】:
-
它完全按照您的要求做。它旋转。如果你用一张纸来做,你会发现它是一样的。你想要的是我假设的旋转和缩放。
-
@Noctis - 你有什么解决办法吗?
-
如果您使用的是 WPF,您也可以简单地使用
LayoutTransform而不是RenderTransform,并实现相同的效果,减去数学...
标签: c# graphics drawrectangle