xamarin - Xamarin 表单获取网格项位置
问题描述
我有一个包含 2 列的网格和填充有图像的网格。点击时如何获取图像在网格中的位置?
<Grid.GestureRecognizers>
<TapGestureRecognizer Tapped="TapGestureRecognizer_Tapped"
</Grid.GestureRecognizers>
private void TapGestureRecognizer_Tapped(object sender, EventArgs e)
{
}
解决方案
我建议为此使用一个包,以便以 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");
}
推荐阅读
- karate - 通过场景名称调用另一个功能文件中的场景
- c# - 以选定编码将文本文件读入字节数组的最佳方法?
- javascript - 反应最终形式至少一个必填字段
- angular - Angular CDK 拖放绝对定位元素而不跳跃
- latex - 如何在 R Markdown 中打印文件路径
- python - ImportError:导入pymqe时DLL加载失败:找不到指定的模块
- arrays - 我应该如何声明一个数组,该数组包含一个包含 2 个项目的数组,而 TypeScript 中没有任何项目
- visual-studio - ReSharper 重命名 (Ctrl + R + R) 功能在 Visual Studio 中停止工作而不会触发任何错误
- r - R:循环遍历目录中的所有文件,应用列替换命令
- visual-studio-code - 如何在编辑器中删除“运行|调试”?