Обща информация за фокуса

WPF приложение има две основни понятия на фокус: клавиатура фокус и логично фокус. вход фокус се отнася до елемент, който получава информация от клавиатурата, и логическата цел се отнася до елемент в област, на която се фокусира. Тези концепции са разгледани подробно в този раздел. Общата идея на разликата между тези понятия е важно за създаване на сложни приложения, които имат повече от един домейн, можете да получавате фокус.

Основните класове, които са въвлечени в фокуса на управление е Keyboard клас. FocusManager клас и класове на основните елементи като UIElement и ContentElement. За повече информация за основните елементи, съдържащи се в разбирането на основните елементи.

Клавиатура клас се отнася главно за въвеждане на фокуса и FocusManager клас - до логичен фокус, но това не е абсолютна разлика. Елементът като входния фокус, също ще има логично фокус, но елемент има логична фокус не означава непременно има вход фокуса. Това е очевидно, когато се използва класа на клавиатурата, за да определите елемент като входния фокус, тъй като тя също определя логично фокус върху този елемент.

фокусът се отнася до елемента, който получава настоящия вход клавиатура. Всички десктопа в даден момент може да бъде само един елемент, който има на входа фокуса. В WPF член заявление като входен фокус, ще има стойност на имот IsKeyboardFocused вярно. Статично имота FocusedElement Keyboard клас получава един елемент, който има ток на входа фокус.

За да се получи т вход фокус, Focusable собственост и IsVisible основни елементи трябва да се настрои вярно. Някои класове, като панел на базовия клас. имат стойност по подразбиране за имота Focusable невярна; така че трябва да зададете Focusable имота да е вярно. елементът може да получи фокус.

вход фокус може да се получи чрез взаимодействие на потребителя с SP, например - за преход елемент или върху определени елементи. фокуса на клавиатурата може да бъде получена от програмата въз Фокус метод за Клавиатура клас. Фокус метод се опитва да даде вход фокуса към даден артикул. Елементът за връщане е елемент като входния фокус, която може да се различава от исканата вещ, ако са стари или нови фокус обект блокира искането.

Следващият пример използва метода на фокус. за да настроите фокуса вход към обекта Бътън.

IsKeyboardFocused имоти за основните класове получава стойност, показваща дали елемента на фокус. IsKeyboardFocusWithin имоти за основните класове получава стойност, показваща дали елементът е, или някой от неговите видими дете елемент, входния фокус.

Логически фокус отнася до имота FocusManager. FocusedElement във фокалната региона. Фокус площ е елементът, който съхранява път FocusedElement имоти в тази област. Когато входният фокуса оставя свобода на фокус, фокусиран елемент намалява вход фокус, но запазва логично фокус. При връщане на входния фокус в областта на фокус, фокусиран елемент получава фокуса отново. Това дава възможност за въвеждане на фокуса да се движат между няколко приоритетни области, но гарантира, че фокусиран елемент на фокус отново получава фокуса, когато фокусът се връща в зоната на фокус.

Заявлението може да бъде няколко елемента, които имат логично фокус, но в определена област на фокус, само един член може да има логично фокус.

Елемент с вход фокусът е логична фокусна точка за фокусната област, към която принадлежи.

Елементът може да бъде включена в зоната на фокус в XAML език чрез създаване на приложения имота IsFocusScope възрази FocusManager стойност истина. Елементът код може да бъде включена в зоната на фокус, като се обадите метод SetIsFocusScope.

Следващият пример създава StackPanel обект в централния регион чрез създаване на IsFocusScope свързано стойност.