C# ListView禁用右击选择样式

C# ListView禁用右击选择样式,c#,xaml,listview,winrt-xaml,windows-applications,C#,Xaml,Listview,Winrt Xaml,Windows Applications,我正在尝试禁用列表视图中我的项目的右键单击功能。我已尝试处理RightTapped事件并将e.handled值设置为true。这已经覆盖了列表视图的大部分区域,但是如果我右键单击列表视图项的边框,此选择样式仍然适用。我希望用户仍然能够使用左键单击并应用列表中选定的样式。这只是我想禁用的右键单击 以下是我迄今为止所尝试的: <ListView ItemsSource="{Binding MyItems}" ItemClick="OnItemClicked"

我正在尝试禁用列表视图中我的项目的右键单击功能。我已尝试处理RightTapped事件并将e.handled值设置为true。这已经覆盖了列表视图的大部分区域,但是如果我右键单击列表视图项的边框,此选择样式仍然适用。我希望用户仍然能够使用左键单击并应用列表中选定的样式。这只是我想禁用的右键单击

以下是我迄今为止所尝试的:

<ListView
        ItemsSource="{Binding MyItems}"
        ItemClick="OnItemClicked"
        IsItemClickEnabled="True"
        SelectionMode="Multiple" 
        CanDragItems="True" 
        DragItemsStarting="OnDragItemsStarting"
        RightTapped="OnRightTapped"
        IsRightTapEnabled="False">
        <ListView.ItemContainerStyle>
            <Style TargetType="ListViewItem">
                <Setter Property="Margin" Value="-1,3,-1,0" />
                <Setter Property="IsRightTapEnabled" Value="False"></Setter>
            </Style>
        </ListView.ItemContainerStyle>
        <ListView.ItemTemplate>
            <DataTemplate>
                <Grid Background="Transparent" RightTapped="OnRightTapped" HorizontalAlignment="Left" Height="100" Width="300">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="100"></ColumnDefinition>
                        <ColumnDefinition Width="*"></ColumnDefinition>
                    </Grid.ColumnDefinitions>
                    <Image Grid.Column="0"  Source="{Binding ImagePath}" Width="55" Height="55" Margin="0,0,0,1"/>
                    <Image Margin="20,0,0,22" Grid.Column="0" VerticalAlignment="Bottom" HorizontalAlignment="Left" Width="20" Height="20" Source="smallImage.png"/>

                    <StackPanel VerticalAlignment="Center" Margin="30,0,0,0" Grid.Column="1">
                        <TextBlock VerticalAlignment="Center" Text="{Binding Name}" Foreground="{Binding IsOnline, Converter={StaticResource BooleanToColorConverter}}" Style="{StaticResource BaseTextBlockStyle}" FontSize="20" Height="60"/>
                    </StackPanel>
                </Grid>
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>

编辑:当我单击ListView中某个项目的边框时,OnRightTapped事件没有被触发。什么会吞噬此事件?

通过在我的ListView.ItemTemplate中播放项目的背景色,我发现我的TextBlock没有覆盖行的整个区域。通过将列宽设置为ListView的精确大小,并在此网格上设置RightTapped事件处理程序,我能够覆盖右键单击的所有区域。我仍然不知道为什么没有为ListView本身触发RightTapped处理程序,但这对于我所需要的是一个足够的解决方案

    private void OnRightTapped(object sender, RightTappedRoutedEventArgs e)
    {
        e.Handled = true;
    }