[英]Winforms Transformation
当前正在开发的应用程序有很多图纸。 图纸的原点从Left,Bottom而不是Top,Left开始 。 除“ DrawingString ”外,工程图工作完美。
Graphics g;
g.TranslateTransform(0, Height);
g.ScaleTransform(1, -1);
//All drawings
g.DrawString("1", new Font("Segoei UI", 9), Brushes.Green, new Point(x, y));
我得到的结果是颠倒的文本[![在此处输入图像描述] [1]] [1] 我只想绘制法线文本 ,其余的图应该始终从左下角开始?
编辑
private void panel1_Paint(object sender,PaintEventArgs e)
{
var g = e.Graphics;
var height = panel1.Height;
g.TranslateTransform(0,height);
g.ScaleTransform(1,-1);
g.DrawRectangle(new Pen(Brushes.Black,1),new Rectangle(10,10,100,100));
g.DrawString("Test",new Font("Segoei UI",9),Brushes.Green,new Point(10,110));
}
我只希望翻转文本。 保持原样
再次翻转。
请参见下面的示例。 文本“ 星期日 ”正常显示。 然后我们转置图形对象的矩阵并写入Monday ,因此Monday在Y轴上出现横向反转,最后我们再次翻过Y轴,这样它就恢复了其自身的原始状态,从而可以正常地写入Tuesday 。
private void Form1_Paint(object sender, PaintEventArgs e)
{
var graphics = e.Graphics; // this.CreateGraphics();
var font = new Font("Georgia", 12.0F);
var brush = new SolidBrush(Color.Black);
var pointF = new PointF(20F, 20F);
graphics.DrawString("Sunday", font, brush, pointF);
graphics.ScaleTransform(1F, -1F);
pointF = new PointF(10F, -210F);
graphics.DrawString("Monday", font, brush, pointF);
graphics.ScaleTransform(1, -1);
pointF = new PointF(200F, 200F);
graphics.DrawString("Tuesday", font, brush, pointF);
brush.Dispose();
font.Dispose();
}
在代码中执行此操作,请确保计算要在其中显示文本的Y轴的值。
g.ScaleTransform(1,-1);
g.DrawRectangle(new Pen(Brushes.Black,1),new Rectangle(10,10,100,100));
g.ScaleTransform(1,-1);
g.DrawString("Test",new Font("Segoei UI",9),Brushes.Green,new Point(10, -110));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.