Caliburn Micro键盘快捷键不起作用

时间:2018-10-05 19:47:34

标签: wpf keyboard-shortcuts caliburn.micro

考虑以下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键]更改为[Gesture Alt + F]或[Gesture F11]都不起作用...

这是为什么,以及如何获取可用于Caliburn Micro 3.2.0的键盘快捷键?

1 个答案:

答案 0 :(得分:1)

看看GitHub上的官方Scenario.KeyBinding示例。特别注意Configure()类中的Bootstrapper方法。在那里的代码可以实现按键绑定。如果您在示例项目的ToggleFullScreen()类中添加了ShellViewModel方法,并将cal:Message.Attach的{​​{1}}的附加属性ShellView设置为[Key F11] = [ToggleFullScreen]在您的示例中,它应该可以工作。

因此,您需要将代码从Configure()方法复制到引导程序中,并将样例项目的Input文件夹下的类导入项目。