1

我正在使用 Silverlight 5 发布的 PivotViewer v2。我已经开始使用 PivotViewer 的新数据绑定功能,直接绑定到从服务器传递下来的数据对象,并使用 ItemTemplate 在 PivotViewer 中显示对象.

使用 CXML,我可以为数据透视查看器预先生成 DZC/DZI(它是一个 JIT 集合),但我不知道如何使用 Deep Zoom 成像 + 带有数据绑定的新数据透视查看器。如何在数据绑定的集合的项目模板中显示深度缩放图像?

我尝试使用PivotViewerMultiSizeImage类(下面的 XAML)和PivotViewerMultiScaleSubImageHost类。我下面的例子几乎可以工作:它显示了一个图像,但似乎停留在 100 像素级别 - 没有深度缩放。我也尝试过使用 DZI 的MultiScaleImage控件,但没有运气 - 它立即生成 OutOfMemory 异常。

有谁知道如何在新的 PivotViewer 中通过数据绑定获得 Deep Zoom 功能?

<pivot:PivotViewer.ItemTemplates>
<pivot:PivotViewerItemTemplate>

<pivot:PivotViewerMultiSizeImage Width="100" Height="100">
     <pivot:PivotViewerMultiSizeImage.Sources>
           <pivot:PivotViewerMultiSizeImageSource MaxHeight="100" MaxWidth="100" UriSource="{Binding Images[2]}" />
           <pivot:PivotViewerMultiSizeImageSource MaxHeight="300" MaxWidth="300" UriSource="{Binding Images[3]}" />
           <pivot:PivotViewerMultiSizeImageSource MaxHeight="500" MaxWidth="500" UriSource="{Binding Images[4]}" />
           <pivot:PivotViewerMultiSizeImageSource MaxHeight="700" MaxWidth="700" UriSource="{Binding Images[5]}" />
           <pivot:PivotViewerMultiSizeImageSource MaxHeight="20000" MaxWidth="20000" UriSource="{Binding Images[6]}" />
     </pivot:PivotViewerMultiSizeImage.Sources>
</pivot:PivotViewerMultiSizeImage> 

</pivot:PivotViewerItemTemplate>
</pivot:PivotViewer.ItemTemplates>
4

2 回答 2

0

我已经实现了与对象集合的绑定,但我对图像使用了深度缩放集合。我使用了 Excel 工具,但只给了它图像的路径(按名称排序)和名称。我没有使用 cxml 文件,但确实使用了所有其余的深度缩放图像文件。我为集合中的数据对象添加了一个属性,称为 Img。Img 是该对象的图像集合中的图像编号索引(基于 0)。然后,我的 PivotViewer ItemTemplate 绑定到此属性。CollectionSource 属性设置为我的图像集合 xml 文件的路径(它在生成的 cxml 中命名)。

            <Visualizer:MyPivotViewer x:Name="RedemptionPivot" >
                <Pivot:PivotViewer.ItemTemplates>
                    <Pivot:PivotViewerItemTemplate >
                        <Pivot:PivotViewerMultiScaleSubImageHost ImageId="{Binding Img}" CollectionSource="http://www.redemptionlive.com/Visualizer5/RedemptionCards_files/e3tbc2s0.4td.xml"/>
                    </Pivot:PivotViewerItemTemplate>
                </Pivot:PivotViewer.ItemTemplates>
                <Pivot:PivotViewer.PivotProperties>
                    <Pivot:PivotViewerStringProperty Id="Name" Options="CanFilter,CanSearchText" DisplayName="Name" Binding="{Binding Name}" />
                    <!--The rest of the properties go here-->
                </Pivot:PivotViewer.PivotProperties>
            </Visualizer:MyPivotViewer>
于 2012-02-03T07:41:38.643 回答
0

您将获得 100x100 的图像,因为您将其指定为控件的大小。改变大小

<pivot:PivotViewerMultiSizeImage Width="100" Height="100">

<pivot:PivotViewerMultiSizeImage Width="2000" Height="2000">

或大到足以显示最大图像的东西。另外,我不确定这是否重要,但我没有在最大的图像上放置 MaxHeight/MaxWidth。

这对我有用,感谢您半途而废,因为您带领我走上了正确的道路,以通过数据绑定获得类似深度缩放的功能!

于 2012-11-28T18:32:09.627 回答