gpt4 book ai didi

c# - 如何设置菜单的快捷方式?

转载 作者:行者123 更新时间:2023-11-30 15:05:04 25 4
gpt4 key购买 nike

例如,对于这段代码,我如何为菜单设置快捷键:

<Menu >
<MenuItem Header="File" >
<MenuItem Header="Save" ToolTip="Ctrl + S" Click="Save_Click"/>
<MenuItem Header="Save As" ToolTip="Ctrl + S + Shift" Click="SaveAs_Click"/>
<MenuItem Header="SelectAll" ToolTip="Ctrl + A" Click="SelectAll_Click"/>
</MenuItem>
</Menu>

换句话说,当我按下 Ctrl-S 时,Save_Click 会被提升等等。

最佳答案

我认为最好的方法是使用 WPF 命令模式

<Window x:Class="MenuShotCuts.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">
<Window.InputBindings>
<KeyBinding Key="S" Modifiers="Ctrl" Command="{Binding SaveCmd}" />
</Window.InputBindings>
<Grid>
<Menu >
<MenuItem Header="File" >
<MenuItem Header="Save" ToolTip="Ctrl + S" Command="{Binding SaveCmd}"/>
</MenuItem>
</Menu>
</Grid>
</Window>

在后面的代码中:

public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();

this.DataContext = this;

m_saveCmd = new SaveCommand();
}

private SaveCommand m_saveCmd;
public SaveCommand SaveCmd
{
get
{
return m_saveCmd;
}
}
}

public class SaveCommand : ICommand
{
#region ICommand Members

public bool CanExecute(object parameter)
{
return true;
}

public event EventHandler CanExecuteChanged;

public void Execute(object parameter)
{
MessageBox.Show("Saved", "Info");
}

#endregion
}

关于c# - 如何设置菜单的快捷方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9494431/

25 4 0