c# - 如何在 Avalonia 表单中强制键盘输入焦点

标签 c# avalonia keyboard-focus

enter image description here

例如,我有一个简单的表单,只有一个文本框。当显示此表单时,其上的输入框没有键盘焦点,因此,在我正在创建的程序中工作,在这种情况下,我必须愚蠢地按 Tab 键才能输入我的框。如何避免这种情况并在表单出现时让我的 TextBox 键盘聚焦?

AXAML:

<Window xmlns="https://github.com/avaloniaui"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
        x:Class="SpaceDunyal.Forms.Window1"
        Title="MyWindow">
    <StackPanel Margin="10">
        <TextBox Name="MyInput" Watermark="Input yor text"/>
    </StackPanel>
</Window>

C#:

using Avalonia.Controls;

namespace SpaceDunyal.Forms
{
    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();
            MyInput.Focus(); // No effect
        }
    }
}

最佳答案

只有在 MyInput 控件添加到可视化树后,您才必须调用 Focus() 函数:

MyInput.AttachedToVisualTree += (s, e) => MyInput.Focus();

关于c# - 如何在 Avalonia 表单中强制键盘输入焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74246847/

相关文章:

avaloniaui - AvaloniaUI 按钮中按钮文本的水平居中

xaml - 如何在 Avalonia 中将焦点设置到 TextBox

c# - 自定义 Avalonia 控件从其他线程性能问题渲染

c# - HttpContext.GetOwinContext().GetUserManager<AppRoleManager>() 返回 null

c# - 通用方法返回不同的通用集合

c# - 选择子元素具有值的 XElement

c# - 使用 VSTO 处理 Excel 数据?