1

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

4

2 回答 2

1

我用行为做到了。行为类

    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>
于 2020-12-07T03:25:11.413 回答
0

如果您只想专注于开始,请使用 AttachedToVisualTree 而不是 PropertyChanged

于 2022-01-16T17:52:37.533 回答