UWP Xaml GridViewItem:删除边距

Jan*_*nis 2 xaml winrt-xaml uwp

我想创建一个图像网格,它们之间没有任何边距.我试图通过一个实现这一点GridView.如果有更简单的方法,请告诉我.

我在StackOverflow上找到了这个答案:

/sf/answers/734472511/

/sf/answers/1667255201/

结束了这段代码:

<Page.Resources>
    <Style x:Key="MyGridViewItemStyle" TargetType="GridViewItem">
        <Setter Property="Padding" Value="0" />
        <Setter Property="Margin" Value="0" />
        <Setter Property="BorderThickness" Value="0" />
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="GridViewItem">
                    <GridViewItemPresenter ContentMargin="0" Padding="0" Margin="0" BorderThickness="0"/>
                </ControlTemplate>
            </Setter.Value>
        </Setter>

    </Style>
</Page.Resources>

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    <StackPanel>
        <GridView ItemsSource="{x:Bind FieldList}" Margin="0,50,0,0" Padding="0" BorderThickness="0" ItemContainerStyle="{StaticResource MyGridViewItemStyle}" IsItemClickEnabled="True" ItemClick="OnItemClick">
            <GridView.ItemTemplate>
                <DataTemplate x:DataType="data:Field">
                    <Image Width="20" Height="20" Margin="0" Source="{x:Bind ImagePath}"/>
                </DataTemplate>
            </GridView.ItemTemplate>
        </GridView>
        <TextBlock x:Name="text">Hallo!</TextBlock>
    </StackPanel>
</Grid>
Run Code Online (Sandbox Code Playgroud)

但仍然有一个余地: 截图

我也尝试使用负边距,但是当我使用它们时,点击不再被正确识别.

如何删除边距?

Tom*_*yts 7

看起来GridViewItem的默认MinWidth为44px.

您可以通过GridViewItemStyle将其设置为0:

<Setter Property="MinWidth" Value="0" />
Run Code Online (Sandbox Code Playgroud)

编辑:它也有一个默认的MinHeight,您可能也想将其设置为0.