I have this xaml code:
<local:MyGridView x:Name="topDeal" ItemsSource="{Binding}" Margin="60,0,0,0" Grid.Row="1">
<GridView.ItemTemplate>
<DataTemplate>
<Grid Margin="0">
<Grid.Background>
<ImageBrush ImageSource="{Binding image1}"/>
</Grid.Background>
<StackPanel VerticalAlignment="Bottom" Background="#0072B0" Opacity="0.6">
<Border BorderBrush="LightGray" BorderThickness="0,0,0,1"/>
<TextBlock Text="{Binding name}" Foreground="white"/>
</StackPanel>
</Grid>
</DataTemplate>
</GridView.ItemTemplate>
<GridView.ItemsPanel>
<ItemsPanelTemplate>
<VariableSizedWrapGrid ItemHeight="180" ItemWidth="180" Orientation="Horizontal" MaximumRowsOrColumns="4"/>
</ItemsPanelTemplate>
</GridView.ItemsPanel>
</local:MyGridView>
and c# code behind:
public class MyGridView : GridView
{
protected override void PrepareContainerForItemOverride(DependencyObject element, object item)
{
var gi = element as GridViewItem;
//First griditem of MyGridView will be modified
if (this.Items.IndexOf(item) == 0)
{
gi.SetValue(VariableSizedWrapGrid.ColumnSpanProperty, 2);
gi.SetValue(VariableSizedWrapGrid.RowSpanProperty, 2);
}
base.PrepareContainerForItemOverride(gi, item);
}
}
I want to to make first item show in double size of other items with a background image in it. The result in this Link. The background image was only fill in TextBlock.

In your data template you can try this way and it should work for you if I’m not wrong :