|
Сброс фокуса контрола в окне wpf
|
|||
---|---|---|---|
#18+
Добрый день. Подскажи пожалуйста, как выполнить сброс фокуса контрола (на котором в данный момент установлен фокус)? Привести форму в состоянии как при загрузке, когда фокуса нет ни на одном контроле. Keyboard.ClearFocus() не помогает. Перевести фокус на какой-нибудь другой, специально для этого сделанный контрол какое-то костыльное решение. Не подойдет. Я думал, что для это простого действия есть какое-то просто решение. Но что-то ничего не нашел. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2015, 19:06 |
|
Сброс фокуса контрола в окне wpf
|
|||
---|---|---|---|
#18+
Keyboard.ClearFocus() очищается фокус ввода, элемент в фокусе ввода имеет IsKeyboardFocused = true и this.IsKeyboardFocusWithin = true если содержимое этого элемента имеет фокус ввода. В WPF Есть фокус ввода, и просто фокус. Простой фокус определяется свойством IsFocused, если в окне есть несколько FocusScope, то фокусов будет столько же, сколько и этих областей фокусирования. класс FocusManager - относится к простому фокусу, а класс Keyboard к фокусу ввода. Если ты хочешь изменить фокус ввода или фокус, то желательно это делать через диспетчер и приоритетом Input. Чтоб сбросить фокус в FocusScope, выбери через фокус манагер корневой элемент. Его можно найти в визуальном дереве по IsFocusScope относительно того объект который находится в этой области или окно, оно по умолчанию является областью фокусировки. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2015, 19:44 |
|
|
start [/forum/topic.php?fid=21&fpage=14&tid=1440766]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
45ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
38ms |
get tp. blocked users: |
2ms |
others: | 10ms |
total: | 137ms |
0 / 0 |