Hier ist eine Technik, die ich oft verwende. Es baut auf dem obigen Beispiel des Hinzufügens des FocusedElement
Attributs zu Ihrem Window
oder UserControl
auf.
Mein Deal ist, dass ich nicht wollen, dass IRGENDEIN der Kontrollen auf meinem Fenster Fokus haben. Die Lösung für mich besteht darin, ein Dummy-Steuerelement zu erstellen, das keine Benutzeroberfläche hat und diesem den Fokus zuweist. Es passiert einfach so, dass Control
die Rechnung passt perfekt:
<UserControl
x:Class="MyControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
FocusManager.FocusedElement="{Binding ElementName=focus_thief}"
mc:Ignorable="d">
<Grid>
<!-- no renderable UI -->
<Control Name="focus_thief"/>
<!-- wants focus, but won't get it -->
<ListBox>
<ListBoxItem>First Item</ListBoxItem>
</ListBox>
</Grid>
</UserControl>
ich denke, u bedeutet, dass, wenn u Fokus auf Listbox bewegen, wird der 1. Punkt immer ausgewählt? (hervorgehoben ... und wenn du runter drückst, bekommt der 2. Punkt den Fokus?) –
1) für den, der meine Frage als Duplikat markiert hattest, hast du die Frage nicht verstanden, ich bin diejenige, die auch das Duplikat gepostet hat. 2) @Madi, Wenn die Listbox gerendert wird, wird das erste Element automatisch ausgewählt, ich möchte diese Funktion deaktivieren. – Shimmy
hmm .. Sie können FocusManager verwenden, um auf ein bestimmtes Element/Element zu fokussieren .. (alles in xaml) ...aber ich kann nicht herausfinden, wie man es auf nichts konzentrieren kann: D –