如何在 WPF 图像控件中偏移图像的起点(平移图像)

发布于 2024-11-15 15:05:44 字数 320 浏览 3 评论 0原文

我正在尝试更改 WPF 图像控件中图像的起点,但我似乎找不到直接的答案。

我试图允许用户平移并查看大于图像控件的图像。

这是我的应用程序的链接到屏幕截图,以及我需要的它要做。

举个例子,我希望 的起点是 (image.Height/2, image.Width/2) 而不是 (0,0)。我需要通过 C# 代码动态更改起点。

I'm trying to change the starting point of an image within a WPF image control, I can't seem to find a straight answer.

I'm trying to allow the user to pan and view a image which is larger than the image control.

Here is a link to a screenshot of my app, and what i need it to do.

Just as an example, I want the starting point of to be (image.Height/2, image.Width/2) instead of (0,0). I need the starting point to be dynamically changeable via the C# code.

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

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

发布评论

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

评论(2

○闲身 2024-11-22 15:05:44

尝试将图像控件放置在滚动查看器中。

<ScrollViewer 
    x:Name="MyScrollViewer"
    VerticalScrollBarVisibility="Hidden" 
    HorizontalScrollBarVisibility="Hidden">
    <Image .../>
</ScrollViewer>

然后您可以在代码中使用 ScrollToVerticalOffset 和 ScrollToHorizo​​ntalOffset 方法。

Try placing your image control inside a scroll viewer.

<ScrollViewer 
    x:Name="MyScrollViewer"
    VerticalScrollBarVisibility="Hidden" 
    HorizontalScrollBarVisibility="Hidden">
    <Image .../>
</ScrollViewer>

Then you can use the ScrollToVerticalOffset and ScrollToHorizontalOffset methods in code.

小伙你站住 2024-11-22 15:05:44

我知道这来得太晚了,但我发现自己遇到了类似的问题,并且 ScrollViewer 不适用于我,因为我需要管理图像上的鼠标交互事件。

相反,我的解决方案包括将 Image 放置在 Canvas 内,然后设置(在我的情况下使用数据绑定)Canvas.LeftCanvas.Top 在所述 Image 上附加属性:

<Canvas>
    <Image Canvas.Left="{Binding MyOffset.X}" Canvas.Top="{Binding MyOffset.Y}" />
</Canvas>

I know this comes way too late, but I've found myself on a similar problem and ScrollViewer wouldn't work for me because I need to manage mouse interaction events on the image.

Instead, my solution consists on placing the Image inside a Canvas, then setting (in my case with a data binding) both Canvas.Left and Canvas.Top attached properties on said Image:

<Canvas>
    <Image Canvas.Left="{Binding MyOffset.X}" Canvas.Top="{Binding MyOffset.Y}" />
</Canvas>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文