首页 > 解决方案 > 如何在 Avalonia 中将焦点设置到 TextBox

问题描述

我有 TextBox 和 Button,当我单击 Button 时,TextBox 中的文本会发送到服务器。和 TextBox 失去焦点。单击按钮后如何将焦点设置到文本框?我已经阅读过FocusManager,但我不明白如何使用它((

标签: xamlavaloniauiavalonia

解决方案


我用行为做到了。行为类

    public class FocusOnPropertyChangedBehavior : Behavior<Control>
{
    protected override void OnAttached()
    {
        base.OnAttached();
        AssociatedObject.PropertyChanged += FocuseControl;
    }
    protected override void OnDetaching()
    {
        base.OnDetaching();
        AssociatedObject.PropertyChanged -= FocuseControl;
    }
    private void FocuseControl(object sender, AvaloniaPropertyChangedEventArgs e)
    {
        if (!AssociatedObject.IsFocused) AssociatedObject.Focus();
    }
}

Xaml 代码

    <i:Interaction.Behaviors>
        <custom:FocusOnPropertyChangedBehavior />
    </i:Interaction.Behaviors>

推荐阅读