我有一个包含3列、每列都有2个按钮和1个标签的网格。我想为网格中的每一行添加一个点击手势。当用户在网格行上轻点时,我希望触发点击事件。有没有什么方法可以实现这个?
我希望尽可能保持我的布局简单。之前,我使用多个堆栈布局创建了相同的网格,并将手势添加到父堆栈布局。但为了提高性能,我想使用网格视图来完成此操作。
我希望尽可能保持我的布局简单。之前,我使用多个堆栈布局创建了相同的网格,并将手势添加到父堆栈布局。但为了提高性能,我想使用网格视图来完成此操作。
我建议添加一个ContentView
(它不像StackLayout
那样占用资源)。让它覆盖整行并将GestureRecognizer
添加到其中,像这样:
<ContentView HorizontalOptions="FillAndExpand"
VerticalOptions="FillAndExpand"
Grid.Row="0"
Grid.Column="0"
Grid.ColumnSpan="3">
<ContentView.GestureRecognizers>
<TapGestureRecognizer Tapped="OnTapped"/>
</ContentView.GestureRecognizers>
</ContentView>
ContentView
,并将其添加到XAML中3次,以便只需创建1个。 然后,如果所有的 GestureRecognizer
都完全相同,您还可以将 GestureRecognizer
附加到单个 ContentView
实例,并将该单个实例添加到三个不同的行。 无论如何,您都必须向所有三行添加一些内容,因为不能将 GestureRecognizer
单独附加到行。 - hvaughan3BoxView
。 - ToolmakerSteve
ContentView.GestureRecognizers
不仅适用于ContentView
,而且也适用于其他 UI 元素,比如Label
,即<Label.GestureRecognizers ...>
也可以使用!@hvaughan3 谢谢,我从你的答案中得到了灵感。 - NeverHopeless