2013-03-22 13 views
5

Muszę ustawić fokus na UserControl sam, a nie jego dziecko.
W przeciwnym razie nie mogę zaimplementować wstawiania z bufora. :(
Ustawianie Focusable=True nie pomaga Google i SO mówi tylko, jak ustawić ostrość na UserControl dzieckaJak ustawić fokus na UserControl (wybierz)?

Moja sterowania zawiera:..
- pasek z kilku przycisków przypisane do komend odpowiedniego VM
- TextBox który jest wejście do filtra
- DataGrid -.. wykaz pozycji

muszę wiązać Ctrl + V polecenia do VM Ale obsłużyć ten gest UserControl musi mieć ostrość w przypadku nie ma żadnych przedmiotów. w siatce (VM kolekcja jest pusta) przyciski są wyłączone i jedynym elementem, który może się skupić jest TextBox. Ale obsługuje Ctrl + V na swój własny sposób i nie chcę zmieniać tego zachowania.
Potrzebuję więc czegoś, na co należy ustawić ostrość, gdy kliknę obszar UserControl.
Wierzę, że UserControl jest najlepszym kandydatem na to.
Ale nie wiem, jak to zmienić.

+0

'Inaczej nie mogę zaimplementować wstawiania z bufora" - Czy możesz wyjaśnić to lepiej? twoje pytanie jest zbyt ogólnikowe, nie mogę zrozumieć. Również umieść swój aktualny kod i XAML. –

+0

Dodałem kilka szczegółów. Mam nadzieję, że teraz jest jaśniej. –

Odpowiedz

12

Cały problem polegał na moim niezrozumieniu zachowania kontrolerów.
Ten SO question wyraźnie pokazuje, że wierzę.

Dlatego ustawienie UserControl.Focusable = true nie jest wystarczające. Aby umożliwić nawigację za pomocą klawiatury IsTabStop, musi być również true. Aby uczynić UC wybieranym za pomocą kliknięcia myszką, powinniśmy wywołać Focus() w menedżerze zdarzeń myszy. to jest to!

Powiązane problemy