C# 如何在xamarin中聚焦VisualElement?

C# 如何在xamarin中聚焦VisualElement?,c#,xamarin.forms,focus,C#,Xamarin.forms,Focus,我必须在xamarin中的一个旋转木马页面中显示10多个ContentPage,每个ContentPage中都有许多标签、按钮和条目。那么我如何才能使用当前聚焦的VisualElement 我发现事件 但是没有人能帮到我。虽然VisualElement有聚焦的和未聚焦的事件,但不是所有的控件 将响应,因为事件属于超类。这也是由于不同的平台 例如,WebView的Focused和UnFocused事件将在iOS上运行,但在Android上不起作用 在您的情况下,标签和按钮在大多数情况下不会调用事件

我必须在xamarin中的一个旋转木马页面中显示10多个ContentPage,每个ContentPage中都有许多标签、按钮和条目。那么我如何才能使用当前聚焦的VisualElement

我发现事件


但是没有人能帮到我。

虽然VisualElement聚焦的未聚焦的事件,但不是所有的控件 将响应,因为事件属于超类。这也是由于不同的平台

例如,WebViewFocusedUnFocused事件将在iOS上运行,但在Android上不起作用

在您的情况下,标签和按钮在大多数情况下不会调用事件条目在编辑模式(输入)下将聚焦,在结束编辑时将不聚焦

所以,如果您确实想获得当前的焦点元素,您可以在ContentPage中定义一个属性

public object FocusedElement;
在xaml中 定义每个元素的聚焦事件和非聚焦事件

 <Label Text="Welcome to Xamarin.Forms!" 
           HorizontalOptions="Center"
               Focused="FocusEvent" Unfocused="Label_Unfocused"
           VerticalOptions="CenterAndExpand" />


        <Button  Focused="FocusEvent" Unfocused="UnfocusEvent" Text="111"/>

        <Entry   Focused="FocusEvent" Unfocused="UnfocusEvent" HeightRequest="50"  WidthRequest="100" /> 


是的,这是可行的,但我必须为所有视图添加聚焦和非聚焦事件。还有别的解决办法吗?我认为这是最好的解决办法。或者您可以定义按钮、标签和条目的基本类。如果我的答案对您有帮助,请不要忘记接受我的答案,这将帮助更多与您有类似问题的人:)
 <Label Text="Welcome to Xamarin.Forms!" 
           HorizontalOptions="Center"
               Focused="FocusEvent" Unfocused="Label_Unfocused"
           VerticalOptions="CenterAndExpand" />


        <Button  Focused="FocusEvent" Unfocused="UnfocusEvent" Text="111"/>

        <Entry   Focused="FocusEvent" Unfocused="UnfocusEvent" HeightRequest="50"  WidthRequest="100" />