UWP:如何获取鼠标(指针)下的GridView项目编号(未通过任何点击选择)?

UWP: How to get GridView Item number (not selected by any click) under the mouse (pointer)?

有什么方法可以找出 Item 号码在 GridView 指针下吗?我喜欢在鼠标下显示有关项目的简短信息,而无需通过任何单击选择项目。

您可以处理 ItemTemplate 中根元素的 PointerEnteredPointerExited 事件。

XAML:

<GridView>
    <x:Int32>1</x:Int32>
    <x:Int32>2</x:Int32>
    <x:Int32>3</x:Int32>
    <GridView.ItemContainerStyle>
        <Style TargetType="GridViewItem">
            <Setter Property="HorizontalContentAlignment" Value="Stretch" />
            <Setter Property="VerticalContentAlignment" Value="Stretch" />
        </Style>
    </GridView.ItemContainerStyle>
    <GridView.ItemTemplate>
        <DataTemplate>
            <Grid PointerEntered="TextBlock_PointerEntered"
                          PointerExited="TextBlock_PointerExited"
                          Background="Transparent">
                <TextBlock Text="{Binding}" VerticalAlignment="Center" HorizontalAlignment="Center"/>
            </Grid>
        </DataTemplate>
    </GridView.ItemTemplate>
</GridView>

<TextBlock x:Name="tb" />

代码:

private void TextBlock_PointerEntered(object sender, PointerRoutedEventArgs e)
{
    Panel root = sender as Panel;
    var dataObject = root.DataContext;
    tb.Text = dataObject.ToString(); //displays the currently pointed number in "tb"
}

private void TextBlock_PointerExited(object sender, PointerRoutedEventArgs e)
{
    tb.Text = string.Empty;
}