Nip*_*rus 10 .net c# custom-controls winforms
我在控件上绘制图形,但0,0位于控件的左上角.有没有办法翻转坐标,使0,0位于控件的左下角?
Dre*_*kes 16
如果您使用的是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...
}
Run Code Online (Sandbox Code Playgroud)
如果要使用常规坐标系进行其他绘图,则只需要包含开始/结束容器调用.有关图形容器的更多信息,请访问MSDN.
正如Tom在评论中所提到的,这种方法要求Height值具有正确的值.如果您尝试此操作并且看不到任何内容,请确保调试器中的值是正确的.
| 归档时间: |
|
| 查看次数: |
9643 次 |
| 最近记录: |