Запуск команды Silverlight Prism с помощью сочетания клавиш - PullRequest
3 голосов
/ 28 июля 2010

Кто-нибудь знает, можно ли вызвать команду призмы с помощью ярлыка? Я имею в виду, что хочу определить привязку команды к сочетанию клавиш декларативным способом, как ClientUI делает:

ClientUI key bindings

Существуют ли библиотеки с открытым исходным кодом для этой цели? Или, может быть, примеры кода?

Я нашел этот вопрос , но я не думаю, что он отвечает на мой.

Ответы [ 2 ]

3 голосов
/ 27 августа 2010

Я создал такой триггер жестов.И я хотел бы поделиться этим с вами, ребята.По сути, это System.Windows.Interactivity триггер, который может анализировать жесты, представленные в виде строк.Использование так же просто, как в ClientUI:

<UserControl>
    <i:Interaction.Triggers>
        <behaviors:KeystrokeCommandTrigger Command="{Binding SaveChangesCommand}" Gesture="Ctrl+Shift+S" />
        <behaviors:KeystrokeCommandTrigger Command="{Binding RejectChangesCommand}" Gesture="Ctrl+Shift+R" />
        <behaviors:KeystrokeCommandTrigger Command="{Binding NewItemCommand}" Gesture="Ins" />
        <behaviors:KeystrokeCommandTrigger Command="{Binding DeleteSelectedItemCommand}" Gesture="Del" />
        <behaviors:KeystrokeCommandTrigger Command="{Binding UploadSomethingCommand}" Gesture="Ctrl+Shift+U" />
    </i:Interaction.Triggers>
</UserControl>

Код на pastie .

1 голос
/ 28 июля 2010

Вы можете написать прикрепленное поведение, которое прослушивает событие KeyUp и затем вызывает команду.Сложность заключается в переводе чего-то вроде Gesture = "Ctrl + Shift + A".Вам нужно написать анализатор, чтобы точно определить, какую комбинацию клавиш представляет string.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...