2012-05-30 3 views
0

Я новичок в WinRT и пытаюсь создать стандартное gridview, у которого есть групповой заголовок с рядом фрагментов под ним. Этот бит прост. Я пытаюсь изменить его так, что под сеткой плитки можно также добавить колонтитул используя стиль контейнеров:WinRT ControlTemplate ItemsPanel

<GridView 
     x:Name="itemGridView" 
     AutomationProperties.AutomationId="ItemGridView" 
     AutomationProperties.Name="Grouped Items" 
     Margin="116,0,40,46" 
     ItemsSource="{Binding Source={StaticResource groupedItemsViewSource}}" 
     ItemTemplate="{StaticResource Project200x200ItemTemplate}"     
     SelectionMode="None" 
     IsItemClickEnabled="True" 
     ItemClick="ItemView_ItemClick"> 

     <GridView.ItemsPanel> 
      <ItemsPanelTemplate> 
       <VirtualizingStackPanel Orientation="Horizontal"/> 
      </ItemsPanelTemplate> 
     </GridView.ItemsPanel> 

     <GridView.GroupStyle> 
      <GroupStyle> 
       <GroupStyle.HeaderTemplate> 
        <DataTemplate> 
         <Grid Margin="1,0,0,6"> 
          <Button 
           AutomationProperties.Name="Group Title" 
           Content="{Binding Name}" 
           Click="Header_Click" 
           Style="{StaticResource TextButtonStyle}" 
           FontWeight="{Binding IsSelected, ConverterParameter=FontWeight, Converter={StaticResource BooleanToFontWeightConverter}}" 
           /> 
         </Grid> 
        </DataTemplate> 
       </GroupStyle.HeaderTemplate> 
       <GroupStyle.Panel>       
        <ItemsPanelTemplate> 
         <VariableSizedWrapGrid Background="Red" Orientation="Vertical" Margin="0,0,40,0" /> 
        </ItemsPanelTemplate> 
       </GroupStyle.Panel> 

       <GroupStyle.ContainerStyle> 
        <Style TargetType="GroupItem"> 
         <Setter Property="Template"> 
          <Setter.Value> 
           <ControlTemplate> 
            <StackPanel> 
             <ContentPresenter/> 
             <ItemsPresenter/> 
             <TextBlock Text="*** End of group ***"/> 
            </StackPanel> 
           </ControlTemplate> 
          </Setter.Value> 
         </Setter> 
        </Style> 
       </GroupStyle.ContainerStyle> 

      </GroupStyle> 
     </GridView.GroupStyle>    
    </GridView> 

едва не работает, но после добавления стиля контейнера, сетки плитки больше не отображается. .. отображается заголовок группы и текстовый блок «Конец группы», но я потерял сетку плитки.

Может ли кто-нибудь определить, что я делаю неправильно ...?

ответ

0

Что вы делаете неправильно? Замените VirtualizationStackPanel на соответствующий StackPanel, и все будет работать нормально или переместиться на Windows7 (проблема возникает в Vista). КПП. виртуализация не работает на иерархических объектах, таких как TreeView или DataGrid, которые используют группировку (GroupStyle). Взгляните на this.

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

  • Нет связанных вопросов^_^