xaml - 如何在 Avalonia 中将焦点设置到 TextBox
问题描述
我有 TextBox 和 Button,当我单击 Button 时,TextBox 中的文本会发送到服务器。和 TextBox 失去焦点。单击按钮后如何将焦点设置到文本框?我已经阅读过FocusManager
,但我不明白如何使用它((
解决方案
我用行为做到了。行为类
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>
推荐阅读
- javascript - Javascript cloneNode() 不能按预期使用列表?
- javascript - 使有状态的 React 组件无法协同工作
- ruby-on-rails - Rails 创建具有许多关联的活动记录
- flutter - Flutter 从父级调用子状态方法
- javascript - 将承诺分配给变量并在链中返回与仅返回承诺调用不同吗?
- php - Html 表单 - 有没有办法在 &#xHHHH; 之间进行选择 和 &#DDDD; 格式?
- mysql - 我的续集表没有生成主键
- android - 如何将一种语言资源文件用于多种语言?
- jenkins - 无法从 Mac 连接到 CentOS VM -(设置 Jenkins 管道)
- twig - Twig 不会替换子模板中的块