我有这个问题的反面: How do I dynamically size a GridView Item?
我有一个包含两行四列的GridView。期望的行为是GridViewItems填充单元格,我无法找到一种方法来做到这一点。 GridViewItem是一个包含一些其他内容的Grid,我将其作为DataTemplate。我可以为一个项目提供宽度和高度,但这只适用于一个分辨率,我需要项目是动态和比例的,所以如果它们显示在不同的设备上,它们将继续是2行4项。
在另一个页面上,我有一个具有相同布局的静态网格,每个单元格中都包含矩形。这些会自动拉伸,我已经尝试在DependencyProperties中存储它们的宽度和高度,我得到了Rectangle的SizeChanged,但我无法弄清楚如何绑定它们。
页面XAML是这样的:
<Grid x:Name="Pane2LayoutGrid"
Grid.Column="1">
<Grid.RowDefinitions>
<RowDefinition Height="90"/>
<RowDefinition/>
</Grid.RowDefinitions>
<TextBlock x:Name="TitleText" Text="Favorites" Style="{StaticResource TitleBarHeader}"/>
<GridView x:Name="GridView"
Grid.Row="1"
Margin="0,10,0,8"
Style="{StaticResource GridView}"
ItemsSource="{Binding Items, Source={StaticResource vm}}"
/>
</Grid>
DataTemplate:
<DataTemplate>
<Grid>
<Border x:Name="Border" Style="{StaticResource GridBorder}">
<Grid x:Name="grid" Style="{StaticResource Grid}" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1.3*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
<!-- rows for alignment -->
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition Height="3*"/>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<TextBlock x:Name="Text1" Grid.Row="1" Text="{Binding Title}" Style="{StaticResource Title}" />
<TextBlock x:Name="Text2" Grid.Row="1" Text="{Binding Subtitle}" Style="{StaticResource SubTitle}" />
</Grid>
</Border>
</Grid>
</DataTemplate>
答案 0 :(得分:1)
我的队友Dwayne有解决方案,但我们需要一段时间来解决这个问题。
其中一个问题是需要拼接在一起的一堆小块。