我在那個主題上搜索了很多,但無法真正找到解決方案,無需使用任何代碼。我知道有些人會說使用代碼隱藏相關的事情是完全沒問題,但我想避免它。WPF在運行時沒有代碼的情況下設置鍵盤焦點
我有一個用戶控件,它顯示一個「對話框」,帶有單個文本框和一個確定按鈕。該對話框是一個簡單的用戶控件,放在所有其他對象之上。默認情況下,usercontrols可見性設置爲摺疊狀態。如果usercontrol可見,我想將keyboardfocus設置爲對話框usercontrol上的文本框。有什麼辦法可以在xaml中完全做到這一點嗎?由於當控件加載,簡單的設置
FocusManager.FocusedElement="{Binding ElementName=tbID}"
將無法工作,我的對話框的控制是不是在當時可見。我試圖使用某種可見性觸發器:
<TextBox Grid.Column="3"
Grid.Row="5"
Name="tbID"
VerticalAlignment="Center">
<TextBox.Style>
<Style TargetType="{x:Type TextBox}">
<Style.Triggers>
<Trigger Property="Visibility" Value="Visible">
<Setter Property="FocusManager.FocusedElement" Value="{Binding ElementName=tbID}" />
</Trigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
但這也不工作。觸發器被觸發,但文本框沒有獲得焦點。我真的很感激這方面的任何建議。提前致謝!
這是靈魂!我在你的代碼中將** _ this **更改爲我的用戶控件的名稱,它的效果非常好!非常感謝你。 – 2013-03-05 10:08:56