Мне известно о свойстве KeyPreview формы Windows, и это позволяет форме получать ключевые события до того, как они будут переданы в целевой элемент управления.
Однако я хочу, чтобы Форма получала событие после того, как оно было передано в целевой элемент управления.
В качестве теста я поместил TextBox на форму. После ввода в TextBox он должен вести себя по умолчанию при нажатии определенных клавиш. Ctrl-S, F1 и т. Д. Я хочу, чтобы они проходили через TextBox до формы, которая будет обрабатываться на более высоком уровне. Это те команды, которые TextBox не выполняет по умолчанию.
Мне нужны события, чтобы сначала пройти через TextBox. Приложение, в котором требуется эта функциональность, является более сложным, чем этот простой пример. Например, когда TextBox является сфокусированным элементом управления, он должен выполнять копирование и вставку по умолчанию, используя Ctrl-C и Ctrl-V. Однако, когда сосредоточены различные другие элементы управления, эти команды должны оказаться на самом верхнем уровне формы для обработки там.
Edit:
Похоже, что входные события переходят от формы к сфокусированному контролю, а не наоборот, как я ожидал. Если бы он перешел от Фокуса к Форме, у меня, вероятно, не было бы проблемы, с которой я столкнулся.
Edit2:
Прочитав (кратко) эту статью: http://www.codeproject.com/KB/WPF/BeginWPF3.aspx Теперь я предполагаю, что тот «пузырек», который я ожидал просто «быть там», доступен только в WPF, а не в стандартном C #. Я думаю, что мне придется переосмыслить способ взаимодействия пользователей с моим приложением, а не писать множество уродливого кода.
Большие очки всем, кто может ответить на вопрос о создании пузырей в стиле WPF в C # без уродливого кода.