【问题标题】:PivotViewer v2 dynamic collection AND deep zoom imagesPivotViewer v2 动态集合和深度缩放图像
【发布时间】:2012-01-08 22:29:16
【问题描述】:

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

使用 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>

【问题讨论】:

    标签: c# silverlight xaml deepzoom pivotviewer


    【解决方案1】:

    我已经实现了与对象集合的绑定,但我对图像使用了深度缩放集合。我使用了 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>
    

    【讨论】:

      【解决方案2】:

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

      &lt;pivot:PivotViewerMultiSizeImage Width="100" Height="100"&gt;

      &lt;pivot:PivotViewerMultiSizeImage Width="2000" Height="2000"&gt;

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

      这对我有用,感谢您在中途解决这个问题,因为您引导我走上正确的道路,通过数据绑定获得类似深度缩放的功能!

      【讨论】:

        猜你喜欢
        • 2011-02-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多