WinRT:如何为特定的GridIViewtem设置悬停效果?

时间:2012-11-13 20:11:02

标签: winrt-xaml

我有一个绑定到GridView的项目列表。该列表包含多种类型的数据。我使用ItemTemplateSelector将DataTemplate应用于不同的数据类型,以便它们各自具有独特的外观。

我不知道如何在没有DataTriggers的SubClass1的DataTemplate中移除悬停在GridViewItem效果上。

public class Base
{
   public string Name {get;set;}
}
public class SubClass1 : Base
{
}
public class SubClass2 : Base
{
}
public PageViewModel : ViewModelBase
{
   public List<Base> ListOfBases {get;set;}
}


        <GridView
        x:Name="baseGridView"
        ItemsSource="{Binding ListOfBases}"
        ItemTemplateSelector="{StaticResource itemsTemplateSelector}"
        SelectionMode="Multiple"
        IsSwipeEnabled="false"
        IsItemClickEnabled="True"
        >

        <DataTemplate x:Key="SubClass1Template">
            <Grid Margin="0" Width="346" VerticalAlignment="Stretch" >
                <TextBlock Grid.Column="0" Text="{Binding Name}" />
            </Grid>
       </DataTemplate>

1 个答案:

答案 0 :(得分:4)

您需要编辑GridViewItem的VisualState样式。要执行此操作,请在VisualStudio或Blend中右键单击GridView。在“设计”视图或“文档”大纲中执行此操作。选择编辑其他模板 - &gt;编辑生成的项容器(ItemContainerStyle) - &gt;编辑副本

如果要完全删除它,请删除PointerOver状态中的元素

<VisualState x:Name="PointerOver"/>

您也可以使用它来对其进行任何更改。也许你不喜欢默认的悬停颜色,但是像其他颜色一样,这里你可以进行这些更改。

更新基于评论

要仅为某个类设置悬停样式,请将用于悬停样式的控件的可见性(例如:边框)设置为直接绑定到类。然后,ValueConverter将根据类的类型返回Visible或Collapsed