【问题标题】:Key Press to Button Action按键到按钮操作
【发布时间】:2017-11-06 14:40:59
【问题描述】:

我有一个标准的 WPF 按钮,它使用 cal:Message.Attach 在 ViewModel 中执行一个函数。如果我按下 F2 按钮,我也想执行相同的功能。

是否有使用 Caliburn Micro 绑定的简单 xaml 声明可以启用此功能?

【问题讨论】:

    标签: c# wpf xaml mvvm caliburn.micro


    【解决方案1】:

    覆盖引导程序的 Configure() 方法:https://github.com/Caliburn-Micro/Caliburn.Micro/blob/master/samples/scenarios/Scenario.KeyBinding/Bootstrapper.cs

    ...试试这个:

    <Button x:Name="TheFunction"
            Content="Click"
            cal:Message.Attach="[Key F2] = [TheFunction];" />
    

    在 GitHub 上的官方 repo 中有完整的代码示例:https://github.com/Caliburn-Micro/Caliburn.Micro/tree/master/samples/scenarios/Scenario.KeyBinding

    【讨论】:

    • 作为我这边的一个问题,因为我在使用&lt;Button.InputBindings&gt; 时偶然发现了它 - 在按钮没有获得焦点时获取调用的函数?
    【解决方案2】:

    您必须为事件添加一个处理程序:

    public MainWindow()
    {
        InitializeComponent();
        this.PreviewKeyDown += new KeyEventHandler(MainWindow_PreviewKeyDown);
    }
    
    void MainWindow_PreviewKeyDown(object sender, KeyEventArgs e)
    {
        if ((e.Key == Key.F2))
        { 
             //DO SOMETHING
        }
    }
    

    【讨论】:

    • 感谢 Nico,但如果可能的话,我希望在 xaml 中执行此操作
    猜你喜欢
    • 1970-01-01
    • 2011-08-25
    • 2013-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-28
    • 2023-03-29
    • 1970-01-01
    相关资源
    最近更新 更多