InputBindings
ограничены тем элементом управления, которому они назначены, если вы назначите KeyBinding
в Window.InputBindings
, они будут запускаться по всему окну, если только один и тот же жест не будет отменен локально, будучи определенным где-то вниз по дереву.
Например, это:
<UserControl.InputBindings>
<KeyBinding Gesture="CTRL+SHIFT+N"
Command="{Binding BtnNewChild_Command}"
CommandParameter="{Binding ElementName=view}" />
</UserControl.InputBindings>
не работает, он не может передать элемент view в качестве параметра, хотя в этом UserControl есть элемент управления с именем "view".Есть ли в wpf какой-нибудь "общий" сценарий назначения горячих клавиш?
Проблема здесь будет заключаться в том, что у дочерних элементов управления есть доступ к вещам, объявленным выше в дереве, но не наоборот.Вы можете реорганизовать это, чтобы создать ваше представление как ресурс в UserControl.Resources
, тогда вы можете ссылаться на него как в CommandParameter
, так и там, где вы используете его в UserControl
.