我对MultiScaleImage的ViewportOrigin属性感到困惑。我认为这个属性应该只用于MultiScaleSubImage将子图像的相对位置分配给整个深缩区域,为什么我们需要设置MultiScaleImage的ViewportOrigin属性(即整个深缩区域)?整个深度变焦区域的左上角总是(0,0),那么为什么需要对整个深度变焦区域应用ViewPortOrigin属性呢?
从下面的MSDN链接,我们可以了解到这个属性同时适用于MultiScaleImage和MultiScaleSubImage。
http://msdn.microsoft.com/en-us/library/cc963427(VS.95).aspx
当我们需要设置MultiScaleImage的ViewportOrigin属性时,有人能给我看一个示例吗?
先谢谢你,乔治
发布于 2009-07-30 03:43:25
通过操作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控件的名称。希望这能有所帮助!
https://stackoverflow.com/questions/1201801
复制相似问题