制作Windows 8 ListView项目只能从代码中选择

时间:2013-01-04 13:14:26

标签: xaml listview microsoft-metro winrt-xaml

我有一个列表视图,启用了单选,但我只希望通过代码而不是通过用户交互来完成选择。 原因是我使用Vistual状态管理器选择状态组作为处理渲染和动画“活动”状态转换的简单方法。这一切都很好,每个项目之间都有一个很好的过渡,但我不希望用户能够设置'活动'项目。

我尝试了一些显而易见的事情,例如覆盖OnTapped Routed事件并将Handled状态设置为true,但项目仍然被选中。

1 个答案:

答案 0 :(得分:2)

如果您希望用户仍然可以滚动但无法选择,那么最好将ScrollView与IsHitTestVisible设置为False的ListView结合使用:

<ScrollViewer Width="100" Height="100"
    HorizontalAlignment="Left" VerticalAlignment="Top"
    VerticalScrollBarVisibility="Auto">

    <ListView Name="Foo" BorderThickness="0" IsHitTestVisible="False">
        <System:String>Item 1</System:String>
        <System:String>Item 2</System:String>
        <System:String>Item 3</System:String>
        etc...
    </ListView>
</ScrollViewer>

请注意,如果ListView在ListView上获得焦点,则用户可以使用键盘更改ListView的选择,因此请确保不会发生这种情况。