2013-03-22 8 views
5

Ich muss den Fokus auf UserControl selbst setzen, nicht sein Kind.
Sonst kann ich die Einfügung aus dem Puffer nicht implementieren. :(
Focusable=True Einstellung hilft nicht Google und erzählt SO nur, wie Fokus auf Usercontrol Kind setzenWie stelle ich den Fokus auf UserControl ein (wählbar)?

Meine Kontrolle enthält..
- Toolbar mit mehreren Tasten, um Befehle des gebundenen entsprechenden VM
- TextBox, das ist der Eingang für die Filter
- Datagrid -.. Liste der Elemente

ich brauche zu binden Strg + V-Befehl an VM Aber diese Geste zu behandeln UserControl muß Fokus innerhalb Wenn es keine Artikel. im Raster (VM's Sammlung ist leer) Schaltflächen sind deaktiviert und das einzige Element, das den Fokus bekommen kann, ist TextBox. Aber es handhabt Strg + V auf seine eigene Weise und ich möchte dieses Verhalten nicht ändern.
Daher brauche ich etwas, um den Fokus zu setzen, wenn ich auf den Bereich von UserControl klicke.
Ich glaube UserControl ist der beste Kandidat dafür.
Aber ich weiß nicht, wie man es auswählbar macht.

+0

'Sonst kann ich die Einfügung aus dem Puffer nicht implementieren '- Können Sie das bitte besser erklären? Ihre Frage ist zu vage Typ, ich kann es nicht verstehen. Veröffentlichen Sie auch Ihren aktuellen Code und XAML. –

+0

Ich habe einige Details hinzugefügt. Hoffe es ist jetzt klarer. –

Antwort

12

Das ganze Problem war in meinem Missverständnis des Verhaltens der Kontrollen.
Diese SO question zeigt es deutlich, glaube ich.

Daher ist die Einstellung UserControl.Focusable = true nicht ausreichend. Um es über die Tastatur navigierbar zu machen, muss auch IsTabStop sein. Und um UC per Mausklick auswählbar zu machen, sollten wir Focus() im Maus Eventhandler aufrufen. Das ist es.

Verwandte Themen