分配班次+;删除按键手势以删除快捷键栏项目WPF

分配班次+;删除按键手势以删除快捷键栏项目WPF,wpf,xaml,keyboard-shortcuts,devexpress,Wpf,Xaml,Keyboard Shortcuts,Devexpress,无法将SHIFT+Delete键手势指定给WPF中的DevExpress条项目。是否有任何限制或我做得不对? 以下是我尝试的代码: <dxb:BarManager> <dxb:BarManager.Items> <dxb:BarButtonItem x:Name="btnDelete" Command="{Binding BtnDelete_Command}" CommandParameter="{Binding El

无法将SHIFT+Delete键手势指定给WPF中的DevExpress条项目。是否有任何限制或我做得不对?

以下是我尝试的代码:

    <dxb:BarManager>
        <dxb:BarManager.Items>
            <dxb:BarButtonItem x:Name="btnDelete" Command="{Binding BtnDelete_Command}" CommandParameter="{Binding ElementName=view}" KeyGesture="SHIFT+Delete" Content="Delete" />
        </dxb:BarManager.Items>
        <dxb:BarManager.Bars>
            <dxb:Bar>
                <dxb:Bar.ItemLinks>
                    <dxb:BarButtonItemLink BarItemName="btnDelete"/>
                </dxb:Bar.ItemLinks>
            </dxb:Bar>
        </dxb:BarManager.Bars>
        <StackPanel>
            <Button Content="sdgsdg" />
            <TextBox x:Name="view"/>
        </StackPanel>
    </dxb:BarManager>



public partial class MainWindow : Window {
    public ICommand BtnDelete_Command { get; set; }
    public MainWindow() {
        BtnDelete_Command = new MyCommand();
        DataContext = this;
        InitializeComponent();
    }
}

public class MyCommand : ICommand {
    public bool CanExecute(object parameter) {
        return true;
    }

    public event EventHandler CanExecuteChanged {
        add { CommandManager.RequerySuggested += value; }
        remove { CommandManager.RequerySuggested -= value; }
    }

    public void Execute(object parameter) {
        MessageBox.Show(parameter.GetType().ToString());
    }
}

公共部分类主窗口:窗口{
公共ICommand BtnDelete_命令{get;set;}
公共主窗口(){
BtnDelete_命令=新建MyCommand();
DataContext=this;
初始化组件();
}
}
公共类MyCommand:ICommand{
公共布尔CanExecute(对象参数){
返回true;
}
公共事件事件处理程序CanExecuteChanged{
添加{CommandManager.RequerySuggested+=value;}
删除{CommandManager.RequerySuggested-=value;}
}
public void Execute(对象参数){
Show(parameter.GetType().ToString());
}
}

它在这里工作正常。如果编辑器未聚焦,则执行命令。如果编辑器处于焦点状态,它会自行处理此组合键,因此不会执行命令。

以下是我尝试的代码:

    <dxb:BarManager>
        <dxb:BarManager.Items>
            <dxb:BarButtonItem x:Name="btnDelete" Command="{Binding BtnDelete_Command}" CommandParameter="{Binding ElementName=view}" KeyGesture="SHIFT+Delete" Content="Delete" />
        </dxb:BarManager.Items>
        <dxb:BarManager.Bars>
            <dxb:Bar>
                <dxb:Bar.ItemLinks>
                    <dxb:BarButtonItemLink BarItemName="btnDelete"/>
                </dxb:Bar.ItemLinks>
            </dxb:Bar>
        </dxb:BarManager.Bars>
        <StackPanel>
            <Button Content="sdgsdg" />
            <TextBox x:Name="view"/>
        </StackPanel>
    </dxb:BarManager>



public partial class MainWindow : Window {
    public ICommand BtnDelete_Command { get; set; }
    public MainWindow() {
        BtnDelete_Command = new MyCommand();
        DataContext = this;
        InitializeComponent();
    }
}

public class MyCommand : ICommand {
    public bool CanExecute(object parameter) {
        return true;
    }

    public event EventHandler CanExecuteChanged {
        add { CommandManager.RequerySuggested += value; }
        remove { CommandManager.RequerySuggested -= value; }
    }

    public void Execute(object parameter) {
        MessageBox.Show(parameter.GetType().ToString());
    }
}

公共部分类主窗口:窗口{
公共ICommand BtnDelete_命令{get;set;}
公共主窗口(){
BtnDelete_命令=新建MyCommand();
DataContext=this;
初始化组件();
}
}
公共类MyCommand:ICommand{
公共布尔CanExecute(对象参数){
返回true;
}
公共事件事件处理程序CanExecuteChanged{
添加{CommandManager.RequerySuggested+=value;}
删除{CommandManager.RequerySuggested-=value;}
}
public void Execute(对象参数){
Show(parameter.GetType().ToString());
}
}

它在这里工作正常。如果编辑器未聚焦,则执行命令。如果编辑器聚焦,它会自行处理此组合键,因此不会执行命令。

谢谢您的回答。这似乎是对的。当文本框处于焦点时,我如何才能使这个手势起作用?(对不起,我是wpf的新手)谢谢你们的回答……看起来是对的。当文本框处于焦点时,我如何才能使这个手势起作用?(对不起,我是wpf的新手)