如何设置焦点的TextBox
元素在WPF将焦点设置文本框在WPF
我有这样的代码:
txtCompanyID.Focusable = true;
txtCompanyID.Focus();
...但它不工作。
有什么想法?
如何设置焦点的TextBox
元素在WPF将焦点设置文本框在WPF
我有这样的代码:
txtCompanyID.Focusable = true;
txtCompanyID.Focus();
...但它不工作。
有什么想法?
在XAML:
<StackPanel FocusManager.FocusedElement="{Binding ElementName=Box}">
<TextBox Name="Box" />
</StackPanel>
尝试FocusManager.SetFocusedElement
FocusManager.SetFocusedElement(parentElement, txtCompanyID)
如果要将焦点设置为*的元素是*父元素o.O,该怎么办? – 2013-12-02 23:04:35
FocusManager.SetFocusedElement(FocusManager.GetFocusScope(parentElement),parentElement); – Philter 2015-03-18 20:31:10
txtCompanyID.Focusable = true;
Keyboard.Focus(txtCompanyID);
MSDN:
只能有一个具有键盘焦点的 整个桌面上的元素。 在WPF中,具有键盘 焦点的元素将使IsKeyboardFocused集合 为true。
您可能会破坏设置行并检查IsKeyboardFocused
属性的值。此外,请检查您是否真的到达该线路,或者您是否设置了其他元素以便在此之后获得焦点。
这一切都不为我工作,因为我是用一个网格,而不是一个StackPanel。
我终于找到了这个例子: http://spin.atomicobject.com/2013/03/06/xaml-wpf-textbox-focus/
,并修改为这样:
在 '资源' 部分:
<Style x:Key="FocusTextBox" TargetType="Grid">
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=textBoxName, Path=IsVisible}" Value="True">
<Setter Property="FocusManager.FocusedElement" Value="{Binding ElementName=textBoxName}"/>
</DataTrigger>
</Style.Triggers>
</Style>
在我的网格定义:
<Grid Style="{StaticResource FocusTextBox}" />
这也适用于我。其余的不是。感谢您的链接,这非常有趣。另外有趣的是,这样一个简单的事情可以如此复杂。 – TravisWhidden 2015-10-01 04:05:27
无论容器是Gird还是StackPanel,以上答案都可以正常工作。由于您的网格结构不清晰,因此很难说出可能出错的地方。很高兴看到替代品。 – usefulBee 2015-10-22 14:19:36
对我来说,这也是唯一能正确工作的人。好方法。 – OregonGhost 2016-10-07 14:24:14
迄今为止没有人解释为什么th问题中的代码不起作用。我的猜测是代码被放置在Window的构造函数中。但目前现在确定重点还为时过早。它必须在窗口准备好进行交互后完成。代码的最佳位置是Loaded事件:
public KonsoleWindow() {
public TestWindow() {
InitializeComponent();
Loaded += TestWindow_Loaded;
}
private void TestWindow_Loaded(object sender, RoutedEventArgs e) {
txtCompanyID.Focus();
}
}
最有用的答案在这个整体线程 – Airhead 2016-10-17 21:18:28
因为它与MVVM保持一致,所以我更喜欢这种方法。 – 2014-02-24 15:05:29
焦点元素是只读的正确的如何在xaml中设置? 我用这个,它没有工作 Style。触发器> –
WPFKK
2016-02-05 14:39:53
@ user841612,请检查以下链接并验证程序集和命名空间https://msdn.microsoft.com/en-us/library/system.windows.input.focusmanager.focusedelement%28v=vs.110%29。 aspx – usefulBee 2016-02-10 22:03:20