Xamarin.forms Xamarin表单:单击处于禁用状态的条目的事件?

Xamarin.forms Xamarin表单:单击处于禁用状态的条目的事件?,xamarin.forms,Xamarin.forms,如何为处于禁用状态的条目添加单击事件 我尝试使用手势识别器,如下所示: <Entry TextColor="Black" x:Name="phone"> <Entry.GestureRecognizers> <TapGestureRecognizer Tapped="StartCall" NumberOfTaps

如何为处于禁用状态的条目添加单击事件

我尝试使用手势识别器,如下所示:

  <Entry
            TextColor="Black"
            x:Name="phone">
        <Entry.GestureRecognizers>
            <TapGestureRecognizer
                Tapped="StartCall"
                NumberOfTapsRequired="1">
            </TapGestureRecognizer>
        </Entry.GestureRecognizers> 
    </Entry>

 void StartCall(object sender,EventArgs args)
    {
        DisplayAlert("Alert","Hi","ok");
    }

void StartCall(对象发送方、事件args args)
{
显示警报(“警报”、“Hi”、“ok”);
}
点击输入时,ui上不会显示警报


正如迭戈·拉斐尔·苏扎所说,提前谢谢你 具有聚焦事件的条目在用户点击条目时将触发

XAML:

<Entry Placeholder="Phone number" TextColor="Black" x:Name="phone" Focused="StartCall"/>
 void StartCall(object sender, EventArgs args){
        DisplayAlert("Alert", "Hi", "ok");
    }

正如@Diego Rafael Souza所说 具有聚焦事件的条目在用户点击条目时将触发

XAML:

<Entry Placeholder="Phone number" TextColor="Black" x:Name="phone" Focused="StartCall"/>
 void StartCall(object sender, EventArgs args){
        DisplayAlert("Alert", "Hi", "ok");
    }

将您的条目放在布局中,并为布局提供手势识别器。 e、 g


将您的条目放在版面内,并为版面提供手势识别器。 e、 g


只需将按钮放在处理事件的布局中(例如StackLayout)

<StackLayout>  
    <StackLayout.GestureRecognizers>
            <TapGestureRecognizer
                Tapped="StartCall">
            </TapGestureRecognizer>
    </StackLayout.GestureRecognizers> 
   <!-- InputTransparent="True" to avoid conflicts -->
    <Entry InputTransparent="True"
            TextColor="Black"
            x:Name="phone"/>
<StackLayout> 

只需将按钮放在处理事件的布局中(例如StackLayout)

<StackLayout>  
    <StackLayout.GestureRecognizers>
            <TapGestureRecognizer
                Tapped="StartCall">
            </TapGestureRecognizer>
    </StackLayout.GestureRecognizers> 
   <!-- InputTransparent="True" to avoid conflicts -->
    <Entry InputTransparent="True"
            TextColor="Black"
            x:Name="phone"/>
<StackLayout> 


我认为它不会真正起作用。entry组件已经有了一个本机处理程序,可以在点击时开始编辑其文本。为此,我建议您改为使用聚焦事件。将透明视图(例如BoxView)重叠到该条目上,并为此BoxView创建一个点击手势如何?@DiegoRafaelSouza我的条目处于禁用状态,我尝试聚焦事件,它仅在启用状态下工作。我需要在禁用状态下启动我的条目。所以@Vahid方法应该适合你。用另一个控件重叠条目,并在上面做点击手势。我认为它不会真正起作用。entry组件已经有了一个本机处理程序,可以在点击时开始编辑其文本。为此,我建议您改为使用聚焦事件。将透明视图(例如BoxView)重叠到该条目上,并为此BoxView创建一个点击手势如何?@DiegoRafaelSouza我的条目处于禁用状态,我尝试聚焦事件,它仅在启用状态下工作。我需要在禁用状态下启动我的条目。所以@Vahid方法应该适合你。将条目与另一个控件重叠,并在其上放置点击手势。我的条目处于禁用状态,我尝试聚焦事件,它将仅在启用状态下工作。我需要在禁用状态下启动我的条目。我的条目处于禁用状态,我尝试聚焦事件,它将仅在启用状态下工作。我需要在禁用状态下启动我的条目。这和@HiteshPatil's提供的答案不一样吗?是的,对不起。我没有看到。您只需要
InputTransparent=“True”
,不应该添加
IsEnabled=“False”
,因为这可能会影响视觉样式。它已启用,但会将输入传递到
堆栈布局
父级。这不是@HiteshPatil提供的相同答案吗?是的,抱歉。我没有看到。您只需要
InputTransparent=“True”
,不应该添加
IsEnabled=“False”
,因为这可能会影响视觉样式。它已启用,但将输入传递到
堆栈布局
父级。