PivotViewer v2 динамическая коллекция и изображения с глубоким увеличением - PullRequest
1 голос
/ 09 января 2012

Я использую PivotViewer v2, выпущенный вместе с Silverlight 5. Я начал использовать новую возможность привязки данных PivotViewer, привязку непосредственно к объектам данных, которые передаются с сервера, и использование ItemTemplate для отображения объектов в PivotViewer.

С CXML я мог бы предварительно сгенерировать DZC / DZI для средства просмотра сводных данных (это коллекция JIT), но я не могу понять, как использовать Deep Zoom Imaging + новый Pivotviewer с привязкой данных. Как отобразить изображение с глубоким увеличением в шаблоне элемента для коллекции, привязанной к данным?

Я пытался использовать класс PivotViewerMultiSizeImage (XAML ниже) и класс PivotViewerMultiScaleSubImageHost . Мой пример ниже почти работает: он отображает изображение, но кажется застрял на уровне 100 пикселей - без глубокого увеличения. Я также попробовал элемент управления MultiScaleImage с DZI, но не повезло - он немедленно генерирует исключение OutOfMemory.

Кто-нибудь знает, как получить возможность Deep Zoom с привязкой данных в новом PivotViewer?

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

Ответы [ 2 ]

0 голосов
/ 28 ноября 2012

Вы получаете изображение 100x100, потому что вы указываете его как размер вашего элемента управления.Измените размер

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

на

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

или что-то достаточно большое, чтобы показать наибольшее изображение.Кроме того, я не уверен, имеет ли это значение или нет, но я не поместил MaxHeight / MaxWidth на мое самое большое изображение.

Это сработало для меня, спасибо, что наполовину выяснил это, потому что вынаправь меня по верному пути к получению функции глубокого масштабирования с привязкой к данным!

0 голосов
/ 03 февраля 2012

Я реализовал привязку к коллекции объектов, но использую коллекцию с глубоким увеличением для изображений. Я использовал инструмент 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>
...