gpt4 book ai didi

.net - Keyboard.Focus(item) 和 item.Focus() 有什么区别?

转载 作者:行者123 更新时间:2023-12-03 19:55:57 32 4
gpt4 key购买 nike

在 WPF 中,有两种方法可以将焦点设置到元素上。
您可以调用 input 元素的 .Focus() 方法,也可以使用 input 元素作为参数调用 Keyboard.Focus() 。

// first way:
item.Focus();
// alternate way:
Keyboard.Focus(item);

这两者有什么区别?在某些情况下,是否有特殊原因需要使用其中一种而不是另一种?
到目前为止,我没有注意到任何区别 - 无论我使用什么方法,该项目总是获得逻辑焦点以及键盘焦点。

最佳答案

item.Focus()的第一件事情之一是打电话Keyboard.Focus( this ) .如果失败,则调用 FocusManager ,正如 decasteljau 所回答的那样。

以下内容是从 Reflector 中的反编译器 View 中复制的.

这是来自 UIElement ( UIElement3D 是一样的):

public bool Focus()
{
if (Keyboard.Focus(this) == this)
{
return true;
}
if (this.Focusable && this.IsEnabled)
{
DependencyObject focusScope = FocusManager.GetFocusScope(this);
if (FocusManager.GetFocusedElement(focusScope) == null)
{
FocusManager.SetFocusedElement(focusScope, this);
}
}
return false;
}

这是来自 ContentElement :
public bool Focus()
{
return (Keyboard.Focus(this) == this);
}

关于.net - Keyboard.Focus(item) 和 item.Focus() 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/197088/

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