我正在使用随Silverlight 5发布的PivotViewer v2。我已经开始使用PivotViewer的新数据绑定功能,直接绑定到从服务器传递的数据对象,并使用ItemTemplate显示对象在数据透视表中。
使用CXML,我可以为枢轴查看器预先生成DZC / DZI(它是一个JIT集合),但我无法弄清楚如何使用Deep Zoom成像+带有数据绑定的新Pivotviewer。如何在项目模板中为数据绑定的集合显示深度缩放图像?
我尝试过使用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>
答案 0 :(得分: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>
答案 1 :(得分:0)
您正在获得100x100图像,因为您将其指定为控件的大小。改变
的大小 <pivot:PivotViewerMultiSizeImage Width="100" Height="100">
到
<pivot:PivotViewerMultiSizeImage Width="2000" Height="2000">
或足够大的东西,以显示最大的图像。此外,我不确定这是否重要,但我没有在我最大的图像上放置MaxHeight / MaxWidth。
这对我有用,感谢中途解决这个问题,因为你带领我走向正确的道路,通过数据绑定获得深度缩放功能!