2013-02-10 2 views
3

Я знаю, что я могу использовать ListView и GridView для создания «Плитки»/элементов любого размера, который я хочу, но как я могу создать плитки разного размера для использования в моем приложении? Это необходимо для работы с ListView или GridView.Плитки различного размера в приложении Windows

Я пробовал так много вещей, но я просто понятия не имею, как это сделать. Любая помощь будет высоко ценится.

В случае, если я не описал, что я пытаюсь добиться правильно, вот ПИК:

enter image description here

ответ

2

Простым способом является создание нового класса, наследующего от GridView, и переопределения метода PrepareContainerForItemOverride. В которой вы можете установить для столбца и столбца «Роузпан» элемент «Дети» на основе данных модели. Рассмотрим, что ваш класс модели содержит информацию Spanning.

public class VariableGrid : GridView 
{ 
    protected override void PrepareContainerForItemOverride(DependencyObject element, object item) 
    { 
     ITileItem tile = item as ITileItem; 
     if (tile != null) 
     { 
      GridViewItem griditem = element as GridViewItem; 
      if (griditem != null) 
      { 
       VariableSizedWrapGrid.SetColumnSpan(griditem, tile.ColumnSpan); 
       VariableSizedWrapGrid.SetRowSpan(griditem, tile.RowSpan); 
      } 
     } 
     base.PrepareContainerForItemOverride(element, item); 
    } 
} 

Дополнительная информация: http://wpfplayground.blogspot.in/2013/03/different-sized-tile-items-in-winrt.html

1

Вы должны установить ItemsPanel/ItemsPanelTemplate вашего списка VariableSizedWrapGrid и установить Grid.RowSpan/ColumnSpan ваших элементов списка до требуемых значений. Я считаю, что вы можете сделать это в ItemContainerStyle элемента управления списком, который лучше всего извлечь, щелкнув правой кнопкой мыши элемент управления в представлении дизайна VS XAML или в Blend и выбрав «Edit Additional Templates»/«Edit Generated Item Container».

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