如何在Avalonia中将焦点设置为TextBox



我有TextBox和Button,当我单击Button时,TextBox中的文本会发送到服务器。TextBox失去了焦点。如何在单击按钮后将焦点设置为TextBox?我读过关于FocusManager的文章,但我不知道如何使用它(

我用Behaviors完成了这项工作。行为类别

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>

如果只想在启动时获得焦点,请使用AttachedToVisualTree而不是PropertyChanged

最新更新