gpt4 book ai didi

c# - 绘制控件时翻转坐标

转载 作者:可可西里 更新时间:2023-11-01 09:01:39 29 4
gpt4 key购买 nike

我正在控件上绘制图形,但 0,0 位于控件的左上角。有没有办法翻转坐标,使 0,0 位于控件的左下角?

最佳答案

如果您使用的是 WinForms,那么您可能会发现可以使用 Graphics.ScaleTransform 翻转 Y 轴:

private void ScaleTransformFloat(PaintEventArgs e)
{
// Begin graphics container
GraphicsContainer containerState = e.Graphics.BeginContainer();

// Flip the Y-Axis
e.Graphics.ScaleTransform(1.0F, -1.0F);

// Translate the drawing area accordingly
e.Graphics.TranslateTransform(0.0F, -(float)Height);

// Whatever you draw now (using this graphics context) will appear as
// though (0,0) were at the bottom left corner
e.Graphics.DrawRectangle(new Pen(Color.Blue, 3), 50, 0, 100, 40);

// End graphics container
e.Graphics.EndContainer(containerState);

// Other drawing actions here...
}

如果您还想使用常规坐标系进行额外绘图,则只需包含开始/结束容器调用。有关图形容器的更多信息是 available on MSDN .

正如 Tom 在评论中提到的,此方法要求 Height 值具有正确的值。如果您尝试此操作但未发现任何内容,请确保调试器中的值是正确的。

关于c# - 绘制控件时翻转坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1485745/

29 4 0
文章推荐: android - 运行线程类方法中的 sendBroadcast 编译错误,Android
文章推荐: c# - 当 T 未知时,如何使用反射执行 List.Cast