2016-04-09 9 views
0

Я ищу точное решение, используемое в приложении Photo Photo в Windows 10, чтобы отобразить список фотографий, размер которых отличается. В основном высота строки фиксирована, но ширина каждого элемента является переменной, определяемой ее относительной размерностью. Ранее я использовал WrapPanel как ItemPanelTemplate. Но использование этого означает, что я теряю виртуализацию пользовательского интерфейса для очень длинного списка. Конечно, решение Microsoft используется для приложения Photo, но я не могу его найти нигде.GridView с фиксированной высотой и переменной шириной для UWP

ответ

0

Вы можете использовать WrapPanel от XAML Toolkit в своем приложении UWP.

Или вы можете попробовать сделать это следующим образом:

<GridView ItemsSource="{Binding}"> 
<GridView.ItemTemplate> 
<DataTemplate> 
<Grid Width="100"> 
<Image Width="100" Height="50" Source="{Binding somesource}" /> 
</Grid> 
</DataTemplate> 
</GridView.ItemTemplate> 
<GridView.ItemsPanel> 
<ItemsPanelTemplate> 
<ItemsWrapGrid MaximumRowsOrColumns="8" Orientation="Horizontal" /> 
</ItemsPanelTemplate> 
</GridView.ItemsPanel> 
</GridView> 

Или вы можете также использовать VariableSizedWrapGrid (это позволит вам иметь изображения с разной высотой)

+0

Я попробовал ваше предложение с ItemsWrapGrid. Он ведет себя как GridView по умолчанию. И, к сожалению, WrapPanel и VariableSizedWrapGrid не поддерживают виртуализацию, как указано в [link] (https://msdn.microsoft.com/en-us/windows/uwp/debug-test-perf/optimize-gridview-and-listview). Должно быть решение Microsoft, используемое для их приложения «Фото», и я все еще ищу. –

+0

В UWP вы можете попробовать инкрементную загрузку с атрибутом x: Фаза и скомпилированные привязки x: Bind –

Смежные вопросы