Control.Focus(FocusState) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
尝试在控件上设置焦点。
public:
virtual bool Focus(FocusState value) = Focus;
bool Focus(FocusState const& value);
public bool Focus(FocusState value);
function focus(value)
Public Function Focus (value As FocusState) As Boolean
参数
- value
- FocusState
指定焦点的设置方式,作为 枚举的值。
返回
bool
如果焦点已设置为控件,或焦点已位于控件上,则为 true。 如果控件不可聚焦,则为 false。
示例
在此示例中,单击“编辑”按钮会导致在 TextBox 上设置焦点,因此将编程焦点状态传递给 Focus 方法。
<StackPanel>
<Button Content="Edit" Click="Button_Click"/>
<TextBox x:Name="EditorTextBox" IsReadOnly="True"/>
</StackPanel>
private void Button_Click(object sender, RoutedEventArgs e)
{
EditorTextBox.IsReadOnly = false;
EditorTextBox.Focus(FocusState.Programmatic);
}
注解
如果在将 IsTabStop 设置为 false
的 上Control
调用此方法,则调用将被忽略且焦点不会移动,并且调用将返回 false
。
不能通过将 作为 参数调用此方法 Unfocused 从控件中删除焦点。 不允许使用此值,并导致异常。 若要从控件中删除焦点,请将焦点设置为其他控件。
通常传递 FocusState.Programmatic 作为参数,以指示控件通过有意调用 Focus 方法获得焦点。 例如,如果单击“编辑”按钮导致在 TextBox 上设置焦点,请使用 编程 焦点状态。
如果将焦点设置为指针交互的直接结果,请传递 FocusState.Pointer 。 如果将焦点设置为键盘交互的结果(如 Tab 序列或按键),请将 FocusState.Keyboard 作为参数传递。 例如,如果要实现 ItemsControl 并处理按键以允许用户在控件中的项目之间移动焦点,请在按键处理程序中调用 Focus 时使用 键盘 焦点状态。
早期版本的说明
注意
在 Windows 8 中,当 FocusState 为编程时,即使先前的输入方法是指针,也会显示键盘焦点视觉对象。 在 Windows 8.1 中,调用 Focus (FocusState.Programmatic) 时,会保留以前的 FocusState(指针或键盘),以便显示正确的焦点视觉对象。 这意味着,如果在调用 Focus (FocusState.Programmatic) 后检查 FocusState 属性的值,则 FocusState 属性的值将是 Pointer 或 Keyboard。
在为 Windows 8 编译但Windows 8.1中运行的应用中,将保留Windows 8行为。 FocusState 属性值为编程,并显示键盘焦点视觉对象。