この問題の反対があります: GridViewアイテムの動的なサイズを設定するにはどうすればよいですか?
2行4列のGridViewがあります。望ましい動作は、GridViewItemsがセルを埋めることですが、これを行う方法がわかりません。GridViewItemは、DataTemplateとして持っている他のコンテンツを含むグリッドです。アイテムの幅と高さを指定できますが、これは1つの解像度でのみ機能し、アイテムは動的で比例している必要があるため、別のデバイスに表示された場合、引き続き4つのアイテムの2行になります。
別のページに、同じレイアウトの静的グリッドがあり、各セルに長方形が含まれています。これらは自動的に引き伸ばされ、RectangleのSizeChangedで取得するDependencyPropertiesに幅と高さを保存しようとしましたが、バインドする方法がわかりません。
ページ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>