首页 > 解决方案 > Xamarin 表单获取网格项位置

问题描述

我有一个包含 2 列的网格和填充有图像的网格。点击时如何获取图像在网格中的位置?

 <Grid.GestureRecognizers> 
      <TapGestureRecognizer Tapped="TapGestureRecognizer_Tapped"                               
 </Grid.GestureRecognizers>

private void TapGestureRecognizer_Tapped(object sender, EventArgs e)
            {

            }

标签: xamarinxamarin.forms

解决方案


我建议为此使用一个包,以便以 Listview 方式轻松检测水龙头:AiForms.CollectionView

你可以简单地做:

 <ai:GridCollectionView 
        ItemsSource="{Binding ItemsSource}" TouchFeedbackColor="Yellow"
        ColumnWidth="100" ColumnHeight="1.0"
        IsGroupingEnabled="true" GroupHeaderHeight="36"   >
        <ListView.GroupHeaderTemplate>
            <DataTemplate>
                <ai:ContentCell>
                    <Label Text="{Binding Category}" BackgroundColor="#E6DAB9" />
                </ai:ContentCell>
            </DataTemplate>
        </ListView.GroupHeaderTemplate>
        <ListView.ItemTemplate>
            <DataTemplate>
                <ai:ContentCell>
                    <Label Text="{Binding Name}" />
                </ai:ContentCell>
            </DataTemplate>
        </ListView.ItemTemplate>
    </ai:GridCollectionView>

并像列表视图一样检测点击:

 void Handle_ItemTapped(object sender, Xamarin.Forms.ItemTappedEventArgs e)
        {
            var photo = e.Item as PhotoItem;
            DisplayAlert("", $"ItemTapped {photo.Category} {photo.Title}", "OK");
        }

推荐阅读