test0723 发表于 2023-7-23 06:48:59

RoutedUICommand的作用是?编写样例代码

RoutedUICommand是WPF中的一个命令类,用于定义和处理用户界面上的命令操作。它可以在XAML中定义和使用,并且可以与菜单、工具栏、按钮等UI元素关联,以实现统一的命令处理逻辑。

以下是一个使用RoutedUICommand的样例代码:

csharp
public static class CustomCommands
{
    public static readonly RoutedUICommand Open = new RoutedUICommand(
      "Open",
      "Open",
      typeof(CustomCommands),
      new InputGestureCollection()
      {
            new KeyGesture(Key.O, ModifierKeys.Control)
      }
    );

    public static readonly RoutedUICommand Save = new RoutedUICommand(
      "Save",
      "Save",
      typeof(CustomCommands),
      new InputGestureCollection()
      {
            new KeyGesture(Key.S, ModifierKeys.Control)
      }
    );
}

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

      CommandBinding openCommandBinding = new CommandBinding(
            CustomCommands.Open,
            OpenCommandExecuted,
            OpenCommandCanExecute
      );
      CommandBinding saveCommandBinding = new CommandBinding(
            CustomCommands.Save,
            SaveCommandExecuted,
            SaveCommandCanExecute
      );

      this.CommandBindings.Add(openCommandBinding);
      this.CommandBindings.Add(saveCommandBinding);

      this.InputBindings.Add(new KeyBinding(
            CustomCommands.Open,
            new KeyGesture(Key.O, ModifierKeys.Control)
      ));
      this.InputBindings.Add(new KeyBinding(
            CustomCommands.Save,
            new KeyGesture(Key.S, ModifierKeys.Control)
      ));
    }

    private void OpenCommandExecuted(object sender, ExecutedRoutedEventArgs e)
    {
      // 打开文件的逻辑
    }

    private void OpenCommandCanExecute(object sender, CanExecuteRoutedEventArgs e)
    {
      // 判断是否可以执行打开文件的命令
      e.CanExecute = true;
    }

    private void SaveCommandExecuted(object sender, ExecutedRoutedEventArgs e)
    {
      // 保存文件的逻辑
    }

    private void SaveCommandCanExecute(object sender, CanExecuteRoutedEventArgs e)
    {
      // 判断是否可以执行保存文件的命令
      e.CanExecute = true;
    }
}
在上述代码中,我们定义了两个RoutedUICommand:Open和Save。然后,在MainWindow的构造函数中,我们创建了两个CommandBinding,将这两个命令与对应的命令处理方法关联起来。同时,我们还创建了两个KeyBinding,将这两个命令与快捷键关联起来。这样,当用户点击菜单、工具栏按钮或按下快捷键时,就会触发对应的命令处理方法。"

test0723 发表于 2023-7-23 06:50:23

wpf 按钮如何设置快捷键F1-F6
https://jingyan.baidu.com/article/c33e3f48c183ffea14cbb574.html
页: [1]
查看完整版本: RoutedUICommand的作用是?编写样例代码