Сочетания клавиш Caliburn Micro не работают - PullRequest
0 голосов
/ 05 октября 2018

Учитывая следующее XAML:

<UserControl x:Class="Solution.Views.SomeView"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
    xmlns:cm="http://www.caliburnproject.org"
    cm:Message.Attach="[Key F11] = [ToggleFullScreen]">
    <Grid>
        <ToolBar DockPanel.Dock="Top" Margin="0">
            <xctk:IconButton Style="{StaticResource ToolBarButton}" ToolTip="Full Screen (F11)"
                cm:Message.Attach="ToggleFullScreen">
                <Image Style="{StaticResource ToolBarButtonImage}" Source="pack://application:,,,/Resources/Img/Full_Screen32.png"/>
            </xctk:IconButton>
        </ToolBar>
    </Grid>
</UserControl>

F11 не будет вызывать метод ToggleFullScreen, но будет нажатие кнопки.Изменение [Клавиша F11] на [Жест Alt + F] или [Жест F11] также не работает ...

Почему это так и как вы получаете сочетания клавиш для работы с Caliburn Micro 3.2.0?

1 Ответ

0 голосов
/ 08 октября 2018

Взгляните на официальный Scenario.KeyBinding пример на GitHub.Обратите особое внимание на метод Configure() в классе Bootstrapper.Это код, который включает привязки клавиш.Если вы добавите метод ToggleFullScreen() в класс ShellViewModel в примере проекта и установите для cal:Message.Attach присоединенного свойства ShellView значение [Key F11] = [ToggleFullScreen], как вы это делали в своем примере, он должен работать.

Таким образом, вам нужно скопировать код из метода Configure() в ваш загрузчик, а также добавить классы из папки Input примера проекта в ваш проект.

...