2013-03-22 6 views
5

Ho bisogno di mettere a fuoco lo stesso UserControl, non suo figlio.
Altrimenti non è possibile implementare l'inserimento dal buffer. :(
Impostazione Focusable=True non aiuta Google e così dice solo come impostare messa a fuoco per UserControl bambinoCome impostare lo stato attivo su UserControl (renderlo selezionabile)?

mio controllo contiene:..
- Toolbar con diversi pulsanti legate ai comandi del corrispondente VM
- TextBox che è l'ingresso per il filtro
- DataGrid -.. elenco degli elementi

ho bisogno di impegnare Ctrl comando + V per VM Ma per gestire questo gesto UserControl deve avere stato attivo all'interno Quando non ci sono elementi. nella griglia (VM la raccolta è vuota) i pulsanti sono disabilitati e l'unico elemento che può ottenere il focus è TextBox. Ma gestisce Ctrl + V a modo suo e non voglio cambiare questo comportamento.
Quindi, ho bisogno di qualcosa su cui focalizzare l'attenzione quando faccio clic sull'area di UserControl.
Credo che UserControl sia il miglior candidato per questo.
Ma non so come renderlo selezionabile.

+0

'Altrimenti non riesco a implementare l'inserimento dal buffer '- Puoi spiegarlo meglio? la tua domanda è troppo vaga, non riesco a capire. Pubblica anche il tuo codice corrente e XAML. –

+0

Ho aggiunto alcuni dettagli. Spero che sia più chiaro ora. –

risposta

12

L'intero problema era nel mio fraintendimento del comportamento dei controlli.
Questo SO question mostra chiaramente che credo.

Pertanto, l'impostazione UserControl.Focusable = true non è sufficiente. Per renderlo navigabile tramite tastiera IsTabStop deve essere anche true. E per rendere UC selezionabile con un clic del mouse dovremmo chiamare Focus() in eventhandler del mouse. Questo è tutto.