首页 > 解决方案 > 如何调整 Cheet.NET 以绑定到我的 C# 表单?

问题描述

所以我在设置键绑定来在我的项目中做某事时遇到了麻烦(右 Alt + 左控制)

我尝试使用一个名为 Cheet.NET 的 API,它说它可以轻松适应项目并允许制作可以调用函数的自定义“konami”代码。

Cheet.NET 的(小)文档:http: //jamiehumphries.github.io/Cheet.NET/

所以我使用 Visual Studio 中的 NuGet 包管理器安装它,保存并重新加载我的项目。

回来,尝试编写一个简单的键绑定,我已经从初始化代码中得到了很多错误:


// Initialization
var cheet = new Cheet();
myUIElement.PreviewKeyDown += cheet.OnKeyDown;

cheet.Map("↑ ↑ ↓ ↓", () => { Debug.WriteLine("Voilà!"); } );

这是我放置代码的地方:

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {

        // Initialization
        var cheet = new Cheet();
        myUIElement.PreviewKeyDown += cheet.OnKeyDown;

        cheet.Map("↑ ↑ ↓ ↓", () => { Debug.WriteLine("Voilà!"); });

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }
    }
}

它无法识别很多代码,并且也给了我很多计算错误:

类、结构或接口成员声明
类型中的无效标记 '+=' 预期
元组必须包含至少两个元素类、结构或接口成员声明
中的无效标记 '"↑ ↑ ↓ ↓"'

我听说我应该将包“绑定”到我的项目,但我不知道该怎么做。

感谢任何未来的帮助。

标签: c#winformsnuget-package

解决方案


存储库中有一个 WPF 演示应用程序,它让您在 Window 构造函数中进行初始化:

public MainWindow()
{
    var cheet = new Cheet();
    PreviewKeyDown += cheet.OnKeyDown;

    cheet.Map("↑ ↑ ↓ ↓ ← → ← → b a", () => { WriteLine("Voilà!"); });

    cheet.Map("i d d q d", () => {
        WriteLine("god mode enabled");
    });
    [etc.]

因此,您使用 来处理PreviewKeyDown事件cheet.OnKeyDown,并且大概在OnKeyDownCheet 中将遍历其映射并寻找适合的映射。

我设置了一个测试 WinForms 项目并添加了 Cheet.NET,如果您想将它与 WinForms 一起使用,看起来您还有一些工作要做。

Cheet.Core有一个Cheet<T>类,但它是抽象的。它看起来像是T一个“关键”类型。Cheet.Wpf 库有一个Cheet类继承自Cheet<Key>,使用 WPFKey类型。

看来您需要创建自己的Cheet类继承(很可能)从Cheet<System.Windows.Forms.Keys>.

我想此时的问题是哪个工作量更大:为 WinForms 实现 Cheet,或者在 WPF 中重新开始您的项目。


推荐阅读