如何設置焦點的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