カスタム グループを含むグリッド ビューがあります。で、MyTemplateSelector : DataTemplateSelector
使用するテンプレートを定義します。この投稿を使用して、次のレイアウトを作成しました。
「ニュース 1」の最初のアイテムのサイズを変更して、利用可能なコンテンツ全体を埋めるにはどうすればよいですか?
ここに私のグリッドのコードがあります:
class ResizableGridView : GridView
{
protected override void PrepareContainerForItemOverride(DependencyObject element, object item)
{
var viewModel = item as IResizable;
if (viewModel != null && viewModel.Width != 0 && viewModel.Height != 0)
{
element.SetValue(VariableSizedWrapGrid.ColumnSpanProperty, 2);
element.SetValue(VariableSizedWrapGrid.RowSpanProperty, 2);
}
base.PrepareContainerForItemOverride(element, item);
}
}
<resizeableGrid:ResizableGridView
x:Name="itemGridView"
AutomationProperties.AutomationId="ItemGridView"
AutomationProperties.Name="Grouped Items"
Grid.Column="3"
Padding="116,137,40,46"
ItemsSource="{Binding Source={StaticResource groupedItemsViewSource}}"
ItemTemplateSelector="{StaticResource mySelector}"
SelectionMode="None"
IsSwipeEnabled="false"
IsItemClickEnabled="True"
ItemClick="ItemView_ItemClick">
そして、使用されるアイテム テンプレートのコード。
<DataTemplate x:Key="tmp170x170ItemTemplate">
<Grid HorizontalAlignment="Left" Width="170" Height="170">
<Border Background="{StaticResource ListViewItemPlaceholderBackgroundThemeBrush}">
<Image Source="{Binding Image}" Stretch="UniformToFill" AutomationProperties.Name="{Binding Title}"/>
</Border>
<StackPanel VerticalAlignment="Bottom" Background="{StaticResource ListViewItemOverlayBackgroundThemeBrush}">
<TextBlock Text="{Binding Title}" Foreground="{StaticResource ListViewItemOverlayForegroundThemeBrush}" Style="{StaticResource TitleTextStyle}" Height="30" Margin="15,0,15,0"/>
<TextBlock Text="{Binding Subtitle}" Foreground="{StaticResource ListViewItemOverlaySecondaryForegroundThemeBrush}" Style="{StaticResource CaptionTextStyle}" TextWrapping="NoWrap" Margin="15,0,15,10"/>
</StackPanel>
</Grid>
</DataTemplate>