0

我对 MultiScaleImage 的 ViewportOrigin 属性感到困惑。我认为该属性应该只用于 MultiScaleSubImage 将子图像的相对位置分配给整个深度缩放区域,为什么我们需要设置 MultiScaleImage 的 ViewportOrigin 属性(即整个深度缩放区域)?整个深度缩放区域的左上角始终为 (0, 0),那么为什么需要为整个深度缩放区域应用 ViewPortOrigin 属性呢?

从下面的 MSDN 链接中,我们可以了解到此属性适用于 MultiScaleImage 和 MultiScaleSubImage。

http://msdn.microsoft.com/en-us/library/cc963427(VS.95).aspx

当我们需要设置 MultiScaleImage 的 ViewportOrigin 属性时,谁能给我看一个示例?

提前谢谢,乔治

4

1 回答 1

1

操作 ViewportOrigin 属性是您如何以编程方式设置您当前希望显示的图像的哪一部分。如果您考虑放大的图像以使您无法通过视口看到所有图像,则这一点更为相关;例如,一张大地图。如果您希望能够从列表中选择一个位置并让地图滚动到该位置,您可以(事实上我确实这样做了)编写如下内容:

private void LocateItem(Point ItemLocation)
        {
            ZoomMap.ViewportOrigin = new Point(
                -((ZoomMap.ViewportWidth / 2) - (ItemLocation.X),
                -((ZoomMap.ViewportWidth * (ZoomMap.ActualHeight / ZoomMap.ActualWidth) / 2) - (ItemLocation.Y));
         }

其中 ZoomMap 是我的 MultiScaleImage 控件的名称。希望有帮助!

于 2009-07-30T03:43:25.357 回答