首页 > 解决方案 > 如何更改 GridViewItem UWP 的样式?

问题描述

我正在开发一个 UWP 应用程序,它使用图像的 GridView,这些图像具有与用户点击相关联的行为。

主文件

<Page.Resources>
    <DataTemplate x:Key="DemoItemTemplate" x:DataType="vm:DemoImages">
        <Grid>
                <Image
                    Source="{x:Bind ImagePath}"/>
              <interactivity:Interaction.Behaviors>
                    <core:EventTriggerBehavior EventName="Tapped">
                        <core:InvokeCommandAction 
                            Command="{x:Bind DoSomeAction}"/>
                    </core:EventTriggerBehavior>
                </interactivity:Interaction.Behavior>
            </Grid>
    </DataTemplate>
</UserControl.Resources>
    

</Page.Resources>

      <GridView
            ItemsSource="{x:Bind ViewModel.ObservableCollectionOfItems}" //List of images 
            SelectionMode="Single"
            IsItemClickEnabled="false"
            ItemTemplate="{StaticResource DemoItemTemplate}"> //defining different images 
            <GridView.ItemsPanel>
                <ItemsPanelTemplate>
                    <StackPanel
                        Orientation="Horizontal"/>
                </ItemsPanelTemplate>
            </GridView.ItemsPanel>
            <GridView.ItemContainerStyle>
                <Style TargetType="GridViewItemPresenter">
                    <Setter Property="SelectedPointerOverBackground"  Value="Green"/> // tried different properties here 
                </Style>
            </GridView.ItemContainerStyle>
        </GridView>

使用此代码,当我单击我的项目时,我得到一个具有上升颜色的矩形。如何修改模板以便没有这个矩形?我尝试操作 ItemContainerStyle 但没有成功。

标签: uwpuwp-xaml

解决方案


使用此代码,当我单击我的项目时,我得到一个具有上升颜色的矩形。

您需要将SelectionMode属性设置None为禁用 a 的项目选择GridView

<GridView SelectionMode="None" ... />

您还可以修改GridViewItem样式以查找BorderRectangle并设置StrokeThickness为 0,以便在选择项目时隐藏矩形。


推荐阅读