c# - 如何调整 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)
{
}
}
}
它无法识别很多代码,并且也给了我很多计算错误:
类、结构或接口成员声明
类型中的无效标记 '+=' 预期
元组必须包含至少两个元素类、结构或接口成员声明
中的无效标记 '"↑ ↑ ↓ ↓"'
我听说我应该将包“绑定”到我的项目,但我不知道该怎么做。
感谢任何未来的帮助。
解决方案
存储库中有一个 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
,并且大概在OnKeyDown
Cheet 中将遍历其映射并寻找适合的映射。
我设置了一个测试 WinForms 项目并添加了 Cheet.NET,如果您想将它与 WinForms 一起使用,看起来您还有一些工作要做。
Cheet.Core
有一个Cheet<T>
类,但它是抽象的。它看起来像是T
一个“关键”类型。Cheet.Wpf 库有一个Cheet
类继承自Cheet<Key>
,使用 WPFKey
类型。
看来您需要创建自己的Cheet
类继承(很可能)从Cheet<System.Windows.Forms.Keys>
.
我想此时的问题是哪个工作量更大:为 WinForms 实现 Cheet,或者在 WPF 中重新开始您的项目。
推荐阅读
- c++ - 在使用 MAPI 的 C++ OUTLOOK 插件中,通过菜单或按钮附加文件与拖放之间是否有区别
- java - 当同一个被调用两次时,CompletableFuture 的“SupplyAsync”部分会发生什么
- xamarin - bannerview.ad 单元已过时:改用 adunitid 属性
- c# - 在 ASP.NET 上读取静态文件
- python - 如何使用 Python 自动一一打开抓取的链接?
- ios - Obj-C - 点击另一个单元格时取消选择选定的单元格?
- android - PlatformException(already_active, 图像选择器已经激活, null, null)
- sql - 将代码从 SQL Server 重写为 Teradata SQL 的复杂问题?
- angular - Angular Pagination如何使用routerLink触发pageChange?
- youtube-api - Google YouTube 数据 API OAUTH 范围