首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在.net-maui (在非聚焦事件处理程序中使用)中找到新聚焦的元素?

如何在.net-maui (在非聚焦事件处理程序中使用)中找到新聚焦的元素?
EN

Stack Overflow用户
提问于 2022-09-08 12:38:14
回答 1查看 286关注 0票数 0

Case:我希望保持一个元素的焦点,除非试图获取焦点的元素是另一个条目元素。

我有这个组件(SearchBar.xaml)

代码语言:javascript
复制
    <?xml version="1.0" encoding="utf-8" ?>
<ContentView xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:localization="clr-namespace:POS365.Src.Extensions"
             xmlns:fontAwesome="clr-namespace:FontAwesome"
             x:Class="SomeApp.Src.Components.SearchBar">
    <Grid ColumnDefinitions="32,*">
        <Label Grid.Column="0" FontFamily="FAS" Text="{x:Static fontAwesome:FontAwesomeIcons.MagnifyingGlass}" FontSize="Large" Style="{DynamicResource HeaderBarSearchIconStyle}"/>
        <Entry Grid.Column="1" x:Name="SearchField" MaxLength="20" Text="" HeightRequest="32" />
    </Grid>
</ContentView>

和(SearchBar.xaml.cs)

代码语言:javascript
复制
using System.ComponentModel;

namespace SomeApp.Src.Components;

public partial class SearchBar : ContentView
{
    public SearchBar()
    {
        InitializeComponent();
        SearchField.Unfocused += OnLostFocus;
    }

    public void OnLostFocus(object sender, FocusEventArgs e)
    {
        // TODO: Find out when to focus this, probably based on what takes focus if possible
        // FocusSearchField();
    }

    // Used by Loaded event elsewhere
    public void FocusSearchField()
    {
        SearchField.Focus();
    }   
}

OnLostFocus似乎只得到失去焦点的元素,而没有获得焦点的元素。如何获得当前焦点元素,以便可以看到它是哪种类型的元素?

EN

回答 1

Stack Overflow用户

发布于 2022-09-13 06:29:47

您可以通过迭代根的子视图并调用view.IsFocused方法来确定这一点。

代码语言:javascript
复制
var views = rootLayout.Children; 

    foreach (View view in views)
    {
        if (view != null && view.IsFocused)
        {

            System.Diagnostics.Debug.WriteLine("view focused is : " + view);
        }

    }

注意:

rootLayout是当前页面的父视图。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73649236

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档