我找不到处理这种情况的方法。我的 Windows 8 商店应用中有一个 ListView。该列表是数据绑定的,并且具有如下所示的 ItemTemplate。
<DataTemplate x:Key="FixtureItem">
<Grid Height="110" Margin="6" Width="521" Background="#7F335107">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="110"/>
<ColumnDefinition/>
<ColumnDefinition Width="110"/>
</Grid.ColumnDefinitions>
<TextBlock x:Name="awayTeamScore" Text="{Binding AwayTeamScore}" Style="{StaticResource TitleTextStyle}" TextWrapping="NoWrap" Margin="5,0,5,11" FontSize="22" FontWeight="Bold" Grid.Column="1" FlowDirection="RightToLeft" VerticalAlignment="Bottom" FontStretch="Condensed" />
<TextBlock x:Name="matchInfo" Text="{Binding MatchInfo}" Style="{StaticResource TitleTextStyle}" TextWrapping="NoWrap" Margin="10,40,10,50" FontSize="22" FontWeight="Bold" Grid.Column="1" FlowDirection="RightToLeft" TextAlignment="Center"/>
<TextBlock x:Name="homeTeamScore" Text="{Binding HomeTeamScore}" Style="{StaticResource TitleTextStyle}" TextWrapping="NoWrap" Margin="5,6,5,0" FontSize="22" FontWeight="Bold" Grid.Column="1" Height="20" VerticalAlignment="Top" FontStretch="Condensed" />
<Image x:Name="homeTeamImage" Source="{Binding HomeImage}" Stretch="Uniform" AutomationProperties.Name="{Binding HomeTeam}" Width="110"/>
<Image x:Name="awayTeamImage" Source="{Binding AwayImage}" Stretch="Uniform" AutomationProperties.Name="{Binding AwayTeam}" Grid.Column="2"/>
</Grid>
</DataTemplate>
我遇到的问题是,当您单击列表视图中的项目时,Windows 8 会有一点动画。即使列表设置为 SelectionMode="none",也会发生这种情况。因此,我需要将按下状态的视觉状态更改为
<VisualState x:Name="Pressed"/>
但我似乎无法让它在我的数据模板中工作。在不破坏数据绑定的情况下执行此操作的正确方法是什么?