【问题标题】:How to enable paste using CTRL+V in empty listbox?如何在空列表框中使用 CTRL+V 启用粘贴?
【发布时间】:2011-04-28 00:06:29
【问题描述】:

我有一个空列表框,我想允许用户将项目粘贴到其中。目前,当用户单击它时,我确保列表框具有焦点(根据WPF: How to enable a Command?)。然后,如果他们右键单击包含粘贴命令的上下文菜单,将启用并且可以单击,这非常好。但是,如果用户在键盘上按 CTRL+V 而不是右键单击,则粘贴命令不会执行。

到目前为止,我无法弄清楚如何进行这项工作。如果列表框中有项目并且其中一个被选中,那么一切正常。

谢谢

【问题讨论】:

    标签: c# wpf c#-3.0


    【解决方案1】:

    将您自己的 CommandBinding 用于粘贴命令添加到列表框。

    m_yourlistBoxReference.CommandBindings.Add(new CommandBinding(ApplicationCommands.Paste,YourExecutedHandler,YourCanExecuteHandler));
    

    但是,如你已经写的,你必须确保 ListBox 是有焦点的,否则CommandBinding 将不会执行。为确保这一点,如果IsFocused 尚未为真,您可以注册到 PreviewMouseDown 事件并聚焦 ListBox。

    【讨论】:

      【解决方案2】:

      我不是 WPF 专家;但是,在 WinForms 中,最简单的方法是添加一个带有剪切、复制、粘贴等快捷键的上下文菜单。然后您无需执行任何操作,只需实现上下文菜单单击。

      【讨论】:

        猜你喜欢
        • 2011-07-27
        • 2022-06-17
        • 2022-12-22
        • 2014-09-06
        • 2021-12-10
        • 2013-03-15
        • 1970-01-01
        • 2020-11-11
        • 1970-01-01
        相关资源
        最近更新 更多