微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C#在可调整大小的图片中绘制点

如何解决C#在可调整大小的图片中绘制点

| 我正在编写用于查看地图的简单C#应用程序。地图是大小约为1000x1000或类似大小的JPG图像,可以按比例调整大小。我有一组点坐标(x,y)和名称。 Viewer是一个Windows Form应用程序,其中包含控制面板和PictureBox。 PictureBox具有属性
SizeBox=AutoSize
。 我使用这种方法将点放置到地图上(PictureBox)。
Graphics g = Graphics.FromHwnd(pictureBox.Handle);
SolidBrush redBrush = new SolidBrush(Color.Red);
g.FillEllipse(redBrush,x,y,7,7);
滚动或调整表格大小后,所有点均消失。如果我在Paint事件上画点,那么我的表现就会有很大的问题。 如何解决这个问题呢?     

解决方法

        为了获得更好的性能,请尝试仅绘制当前可见的内容。最佳实践是放下PictureBox并仅使用两个滚动条(或其他可以像PictureBox一样滚动的滚动条),并仅绘制可见部分的地图和点。在此之前,尝试在调整大小或滚动时将其绘制到PictureBox中,并检查夹点是否在可见区域内。 补充:如果将元素绘制到jpg副本中并将其放入PictureBox,也许就足够了?     ,        您应该能够将事件处理程序挂钩到PictureBox的各个更改点(您提到了滚动和调整大小)。然后,您可以将绘图代码放入从这些事件处理程序调用的方法中。     ,        WPF可能是一个更好的选择。它具有硬件加速功能,将为您执行所有剪辑和缩放转换(只需设置适当的属性)。而且,您还应该能够使用WPF元素来跟踪POI,而不必自己绘制它们。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。