我有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