【问题标题】:Key Binding to a button element in c# wpf在 c# wpf 中键绑定到按钮元素
【发布时间】:2020-06-04 17:51:36
【问题描述】:

我的应用程序中有一个打印按钮,用于打印收据。但是,用户更喜欢使用快捷键(不与 shift 或 Alt 组合,而应该只是一个按键,比如 F2)。按下此按钮时,我应该调用 printReceipt() 方法,我在单击打印按钮时调用该方法。

我正在尝试向用户控件添加键绑定,因为按钮元素位于用户控件中,如下所示

<UserControl.InputBindings>
<KeyBinding Key="F1" Command="{Binding PrintReceipt}" />
</UserControl.InputBindings>

我是初学者,谁能建议我处理此类用例的最佳方法是什么?

【问题讨论】:

  • 尝试在 MainWindow 上设置 KeyBinding。如果这不起作用,您可以添加命令的代码吗?

标签: c# xml wpf xaml


【解决方案1】:

您可以订阅 PreviewKeyDown 的表单。在那里您可以从 DataContext 属性中获取模型并调用 PrintReciept。

这不违反 MVVM 原则,并且易于理解。此外,恕我直言,没有什么神奇的事情发生。

【讨论】:

  • 哇。那行得通!谢谢罗布。顺便说一句..这不会在整个表单的每个按键上检查或调用我们在 PreviewKeyDown 上编写的函数吗?它不会导致任何性能问题吗?
  • 会的,但我认为这是一个优势。您可以在屏幕上的任何位置按 F2 并调用打印收据。我认为这正是用户想要的。另外,我认为不言而喻,您应该检查按下的键是否实际上是 F2,而忽略其他所有内容。这不是性能问题。
猜你喜欢
  • 2017-07-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-16
相关资源
最近更新 更多