我是 WinRT 的新手,正在尝试创建一个标准的网格视图,该网格视图有一个组标题,下面有许多磁贴。这一点很容易。我正在尝试修改它,以便在瓷砖网格下,我还可以使用容器样式添加页脚:
<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>
这几乎有效,但在添加容器样式后,瓷砖网格不再显示......显示组标题和"组结束"文本块,但我丢失了磁贴网格。
谁能发现我做错了什么...?
你做错了什么?将VirtualizingStackPanel替换为其相应的StackPanel,一切将正常工作或在Windows7上移动(问题发生在Vista上)。顺便说一句,虚拟化不适用于分层对象,如使用分组(GroupStyle)的TreeView或DataGrid。看了看这个。