我需要为我的用户提供在UWP应用程序中显示项目的垂直列表的功能 . 用户应该能够点击项目来执行某些操作并通过拖动重新排序,但无法选择它们 . UWP ListView是一个很好的候选人 . 我将使用此控件与以下设置来实现我需要的(简化形式):

<ListView CanReorderItems="True" AllowDrop="True" SelectionMode="None">
    <ListViewItem>Blue</ListViewItem>
    <ListViewItem>Red</ListViewItem>
    <ListViewItem>Yellow</ListViewItem>
    <ListViewItem>Green</ListViewItem>
</ListView>

当然,在真正的应用程序中,我通过 ItemsSource 属性使用数据绑定,我的自定义项模板如下所示:

<ListView.ItemTemplate>
    <DataTemplate>
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="50" />
                <ColumnDefinition Width="*" />
            </Grid.ColumnDefinitions>
            <Rectangle Height="50" Width="50" Fill="RosyBrown" />
            <TextBlock Grid.Column="1" Text="Some text" />
        </Grid>
    </DataTemplate>
</ListView.ItemTemplate>

不幸的是,我找不到一个好的,简单的方法来做我需要的 . 我的主要问题是ListView中的选择 . 例如,即使我将ListView的 SelectionMode 设置为 None ,当用户将鼠标指针移到它们上时,项目仍然会突出显示 . IsHitTestVisible 属性也没有帮助,因为如果我们将它设置为False,我们就无法点击和拖动项目 .

有办法解决我的问题吗?