Виртуальная клавиатура открывается автоматически при закрытии чудо-кнопок/настроек

Мое приложение использует виртуальную клавиатуру. Клавиатура скрывается при открытии панели чудо-кнопок, но всегда появляется снова, когда панель чудо-кнопок закрывается. Я хочу контролировать, появится ли он снова или нет.

В моей программе есть несколько папок с редактируемыми файлами, и для редактирования файлов используется виртуальная клавиатура. В разделе «Настройки» панели чудо-кнопок я добавил элемент управления отображением папок/файлов. Проблема возникает, когда пользователь открывает виртуальную клавиатуру при редактировании файла, а затем переходит к панели чудо-кнопок, чтобы отключить папку, в которой находится этот файл. Я закодировал такие вещи, что файл закрывается, когда это происходит, но как только пользователь закрывает чудо-кнопки, клавиатура автоматически открывается снова... и пусть пользователь продолжает печатать и изменять данные! Они даже могут повторно открыть файл, когда его папка отключена!

Я прочитал несколько других вопросов аналогичного характера, но ни в одном из них нет добавленного элемента панели очарования. Я думаю, что Windows 8 делает примечание или помечает виртуальную клавиатуру для повторного открытия, когда я открываю панель чудо-кнопок, когда клавиатура поднята, и указание клавиатуре закрыть не касается этого флага (и в любом случае я не могу сказать ей закрыть в момент, когда он уже закрыт).

Если я смогу понять, как обращаться с этим гипотетическим флагом, или вместо этого получить некоторый код, который будет выполняться сразу после повторного открытия клавиатуры, я смогу заставить работать все остальное. Любой совет?

ОБНОВИТЬ:

Я нашел обходной путь: весь ввод с клавиатуры теперь проходит через фильтр, который проверяет, активна ли папка/файл, иначе игнорирует ввод. Не идеально, но пригодно для моих нужд. Исходный вопрос остается без ответа.


person TS-    schedule 28.07.2016    source источник


Ответы (1)


Хотя я не знаю никакого способа активировать код, когда панель чудо-кнопок закрывается, достаточно закрыть клавиатуру до того, как она откроется, и, следовательно, не настроить повторное открытие после использования панели чудо-кнопок.

Это достигается добавлением этого к инициализатору:

Window.Current.Activated += Current_Activated;

а затем написать метод:

private void Current_Activated(object sender, Windows.UI.Core.WindowActivatedEventArgs e)

Что касается того, как потерять фокус после запуска метода, я предлагаю посмотреть здесь.

person TS-    schedule 02.08.2016