gpt4 book ai didi

c# - WPF:获取堆栈面板中触摸的项目索引

转载 作者:行者123 更新时间:2023-12-01 16:28:12 24 4
gpt4 key购买 nike

我有一个 StackPanel。 StackPanel 的内容在数据模板中定义,它们基本上是另一个由两个按钮和两个文本 block 组成的 StackPanel。现在...当我触摸 StackPanel 时,我可以获取我触摸的元素

e.TouchDevice.DirectlyOver

其中 e 是 TouchEventArgs 变量。但我只能获取实际的 UIElement...我感兴趣的是获取我触摸的 StackPanel 元素的索引。

有人知道怎么做吗?

谢谢。

XAML:

        <DataTemplate x:Key="AddBookListTemplate">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="9.9*"/>
<ColumnDefinition Width="0.1*"/>
</Grid.ColumnDefinitions>
<StackPanel Orientation="Vertical" >
<StackPanel Orientation="Horizontal">
<Button blabla>
</Button>
<Button blabla>
</Button>
</StackPanel>
<TextBlock/>
<TextBlock/>
</StackPanel>
</Grid>
</DataTemplate>

并且被重复使用

                <ScrollViewer>
<ItemsControl ItemsSource="{Binding Books}" Margin="0 10 0 0" Background="Transparent" ItemTemplate="{StaticResource AddBookListTemplate}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Vertical" TouchEnter="StackPanel_TouchEnter"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
</ScrollViewer>

最佳答案

您可以简单地在面板的 Children 集合上使用 IndexOf 方法:

private void panel_Touch(object sender, RoutedEventArgs e)
{
MessageBox.Show("You've touched n°" + panel.Children.IndexOf(sender as UIElement));
}

关于c# - WPF:获取堆栈面板中触摸的项目索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23873416/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com