Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 多尺度图像的视口原点_C#_.net_Silverlight_Deepzoom - Fatal编程技术网

C# 多尺度图像的视口原点

C# 多尺度图像的视口原点,c#,.net,silverlight,deepzoom,C#,.net,Silverlight,Deepzoom,我对MultiScaleImage的ViewportOrigin属性感到困惑。我认为该属性应仅用于MultiScaleSubImage,以将子图像的相对位置指定给整个深度缩放区域,为什么我们需要设置MultiScaleImage的ViewportOrigin属性,即整个深度缩放区域?整个深度缩放区域的左上角始终为0,0,因此为什么需要为整个深度缩放区域应用ViewPortOrigin属性 从下面的MSDN链接中,我们可以了解此属性同时适用于MultiScaleImage和MultiScaleSu

我对MultiScaleImage的ViewportOrigin属性感到困惑。我认为该属性应仅用于MultiScaleSubImage,以将子图像的相对位置指定给整个深度缩放区域,为什么我们需要设置MultiScaleImage的ViewportOrigin属性,即整个深度缩放区域?整个深度缩放区域的左上角始终为0,0,因此为什么需要为整个深度缩放区域应用ViewPortOrigin属性

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

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

提前感谢,,
George

操作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是我的多尺度图像控件的名称。希望有帮助

感谢Raumornie,我认为MultiScaleImage看起来像是一个容器包含了很多子图像MultiScaleSubImage,就像我们在Deep Zoom Composer中制作的一样。我的困惑是,当我们设置容器的ViewportOrigin时,包含子图像的影响是什么?啊。很好的澄清,但事实上,这是一样的。在使用集合而不是合成图像或大型单个图像的情况下,操纵多尺度图像会将整个集合视为一个合成图像,尽管如果您首先创建了一个集合,这可能不是您想要做的,尽管我相信有人会想到一个示例。给我印象深刻的隐喻是指按索引而不是按键的词典;它是有效的,你可以让它做你想做的,但它可能没有抓住重点。谢谢劳莫尼,我能这样理解吗?深度缩放可显示区域的左上角始终为0,0,对于图像集合多尺度图像对象,我们根据整个深度缩放可显示区域的左上角设置其视口原点以设置其相对位置?我之前的困惑是,我认为图像集合的左上角不是深度缩放显示区域总是0,0。我不知道我是否理解了自己。我目前的理解正确吗?任何评论?深度缩放的可显示区域-我是指最终用户可以看到和操作深度缩放图像集合的固定区域大小。另一个问题是,对于多尺度图像对象中的图像集合,图像的ViewportWidth都是相同的,它们之间的唯一区别是ViewportOrigin?我认为您对ViewportOrigin的理解基本上是正确的。就ViewportWidth而言,它本质上是通过编程方式设置图像缩放级别的方式ZoomAboutLogicalPoint相对地设置它,ViewportWidth绝对地设置它。设置一个测试应用程序,让您直接操作这些属性,只是为了观察它们的效果,无论是使用集合还是使用组合,这可能不是一个坏主意。我在尝试理解Deep Zoom时制作了几个测试应用程序,它们帮了我很大的忙。