2012-01-08 28 views
1

我使用隨Silverlight 5發佈的PivotViewer v2。我已經開始使用PivotViewer的新數據綁定功能,它直接綁定到從服務器傳遞下來的數據對象,並使用ItemTemplate在PivotViewer中顯示對象。PivotViewer v2動態收集和深度縮放圖像

使用CXML,我可以預先生成數據透視查看器(它是JIT集合)的DZCs/DZI,但我無法弄清楚如何使用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> 

回答

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> 
0

您正在獲得100x100的圖像,因爲您將其指定爲控件的大小。的

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

大小更改爲

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

或東西大到足以造成最大的圖像顯示。另外,我不確定這是否重要,但我沒有將MaxHeight/MaxWidth放在我的最大圖像上。

這對我來說很有用,謝謝你的一半解決這個問題,因爲你把我帶到正確的道路上,獲得像數據綁定功能一樣的深度縮放!