C# 动态设置绘图图像中的x和y坐标
我正在使用DrawImage调整图像大小C# 动态设置绘图图像中的x和y坐标,c#,windows,resize,drawimage,C#,Windows,Resize,Drawimage,我正在使用DrawImage调整图像大小 Graphics.DrawImage(SourceImage,0,0,200,200); 在这里,源图像以坐标0开始。 假设我需要动态计算x和y坐标,我该怎么做? 默认情况下,图像应以位置20(即x)和20(即y)开头。 如果我调整窗体的大小,它应该根据调整大小的图像按比例计算,也就是说,如果默认值为20,那么窗体的大小是多少 谢谢您可以注册以调整表单事件的大小,并可以重新绘制图像。有点像 public Form1() {
Graphics.DrawImage(SourceImage,0,0,200,200);
在这里,源图像以坐标0开始。假设我需要动态计算x和y坐标,我该怎么做?
默认情况下,图像应以位置20(即x)和20(即y)开头。
如果我调整窗体的大小,它应该根据调整大小的图像按比例计算,也就是说,如果默认值为20,那么窗体的大小是多少
谢谢您可以注册以调整表单事件的大小,并可以重新绘制图像。有点像
public Form1()
{
InitializeComponent();
this.ResizeEnd += new EventHandler(Form1_ResizeEnd);
}
void Form1_ResizeEnd(object sender, EventArgs e)
{
//draw the image again using the related calculation
}
从您的问题来看,不清楚表单的大小与所需坐标的关系 表单具有
ClientRectangle
属性,您可以使用该属性计算坐标。例如,如果要在右下角显示图像,可以:
protected override void OnPaint(PaintEventArgs e)
{
int x = this.ClientRectangle.Width - 200;
int y = this.ClientRectangle.Height - 200;
e.Graphics.DrawImage(SourceImage, x, y, 200, 200);
}
我假设DrawImage
代码位于Paint
事件处理程序中,您可以
- 使用
SetStyle(ControlStyles.ResizeRedraw,true)在表单构造函数中使用code>,因此在调整表单大小时调用
Paint
- 为
事件添加事件处理程序,并调用Resize
Invalidate()代码>你自己