gpt4 book ai didi

WPF:无法设置焦点

转载 作者:行者123 更新时间:2023-12-04 13:09:05 24 4
gpt4 key购买 nike

我希望从 PreviewTextInput 处理程序创建一个新控件并将焦点设置到它。但即使在新控件上调用 Focus() 之后,光标仍位于旧文本框中。
如果这很重要,则处理程序 UserControl_PreviewTextInput 在包含此文本框的 UserControl 上注册。

private void UserControl_PreviewTextInput(object sender, TextCompositionEventArgs e)
{
CodeLineControl el = new CodeLineControl();
container.Children.Insert(idx+1, el);
el.innerTextBox.Focus();
}

CodeLineControl 定义如下(简化):
<UserControl ..>
<DockPanel Name="codeline" Background="AntiqueWhite" >
<TextBox Name="innerTextBox"/>
</DockPanel>
</UserControl>

Focus() 是否有一些我不知道的限制?我是否不允许将 Focus() 从 PreviewTextInput 处理程序中的 TextBox 移开?我不能将焦点设置在新创建的元素上吗?

最佳答案

这是我用来代替 Focus 的扩展方法:

    public static void BackgroundFocus(this UIElement el)
{
Action a = () => el.Focus();
el.Dispatcher.BeginInvoke(DispatcherPriority.Background, a);
}

无需创建计时器。

关于WPF:无法设置焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1395887/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com