gpt4 book ai didi

c# - 如何为给定的按键运行一些简单的 C# 代码?

转载 作者:行者123 更新时间:2023-11-30 22:45:21 25 4
gpt4 key购买 nike

我在 XAML 表单上有一个按钮,它调用支持 cs 文件中的 btnName_Click() 代码。

我还想分配一个键盘快捷键来运行相同的代码。基本上 CTRL + 或类似的东西。

无论我当前在哪个控件中,这都需要工作(例如,有一个 TextBox,如果我在其中,我想确保它不会捕获事件)。

我已经阅读了有关路由命令的内容,但对于本应很简单的事情来说,这似乎需要做很多工作。

是否有一种简单的方法可以做到这一点,或者我是否需要创建路由命令?如果我确实需要使用它们,实现我想要的功能的最简单方法是什么?

最佳答案

在根 Window 元素中 Hook 到 KeyDown 事件:

<Window x:Class="WpfApplication2.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525"
Keyboard.KeyDown="Window_KeyDown"
>

代码隐藏:

    private void button1_Click(object sender, RoutedEventArgs e)
{
this.DoSomething();
}

private void Window_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Right && e.KeyboardDevice.Modifiers == ModifierKeys.Control)
{
this.DoSomething();
}
}

private void DoSomething()
{
MessageBox.Show("Whatever");
}

附带说明一下,我建议研究 M-V-VM 方法,更具体地说是命令和附加行为。这将使它更易于单元测试。

关于c# - 如何为给定的按键运行一些简单的 C# 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3098892/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com