带有水平滚动条的屏幕坐标

发布于 2024-09-09 10:51:24 字数 308 浏览 3 评论 0原文

我需要在地图图像上放置图标。 由于地图图像大于我的屏幕分辨率 1280 x 1024,因此会显示水平滚动条。

我使用位置 x 和 y 来放置图标,但问题是: 当水平滚动条位于最左侧位置时将图标放置在位置 (0, 0) 与水平滚动条位于最右侧位置时不同...

如果我将滚动条移动到 x 轴(右) 10 然后 将图标放置在 (0, 0) 处,应该是 (0, 0),但它放置在 (10, 0) 处。

在这种情况下,有什么不同的方法吗? 或者我应该考虑滚动条移动了多少?如果是这样,我该怎么做?

希望我的解释有意义。

谢谢,

I need to place icons on a map image.
Since the map image is bigger than my screen resolution 1280 x 1024, a horizontal scroll bar is shown.

I use Location x and y to place icons, but the problem is:
placing an icon at location (0, 0) when the horizontal scroll bar is at left-most position is different from when the horizontal scroll bar is at right-most position...

If I move scroll bar to x-axis(right) 10 then
placing an icon at (0, 0), should be (0, 0) but it is placed at (10, 0).

in this case, is there any different approach?
or should I consider how much scroll bar has moved? if so, how do I do it?

hope my explanation makes sense.

Thanks,

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

郁金香雨 2024-09-16 10:51:24

是的,这有点烦人。如果您的容器控件支持滚动,则每当您在子控件上设置位置时,都必须考虑其当前位置。假设您正在使用自动滚动并且想要将子项放置在 x, y 处。然后你的容器控件可以使用如下代码:

Point p = new Point(x, y);
p.Offset(AutoScrollPosition);
child.Location = p;

Yes, it's sort of annoying. If your container Control supports scrolling, then you have to account for its current position whenever you set the Location on a child Control. Suppose you are using autoscroll and you want to put a child at x, y. Then your container Control could use code like this:

Point p = new Point(x, y);
p.Offset(AutoScrollPosition);
child.Location = p;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文