【发布时间】:2019-08-07 13:25:33
【问题描述】:
我有这个用户可以输入的多行文本框。当他们按下“Ctrl + 1”时,它应该在文本框中插入一个特定的字符,比如这个太阳符号 ☼。我在网上搜索并在Microsoft keyboard accelerators documentation 中找到了类似这样的示例,其中键盘快捷键触发了按下按钮。但在我的情况下,我不想要按钮。
<AppBarButton
Icon="Share"
Label="Share"
Click="OnShare"
AccessKey="S" />
<AppBarButton
Icon="Copy"
Label="Copy"
ToolTipService.ToolTip="Copy (Ctrl+C)"
Click="OnCopy"
AccessKey="C">
<AppBarButton.KeyboardAccelerators>
<KeyboardAccelerator
Modifiers="Control"
Key="C" />
</AppBarButton.KeyboardAccelerators>
</AppBarButton>
【问题讨论】:
-
听起来应该是文本框上的事件处理程序 - 可能是按键 - 监视键和修饰符的特定组合键。
-
WPF/UWP 在设计时考虑了 MVVM 模式。虽然您可以使用其他方法,但这会丢失大约 90% 的功率并很快遇到问题。缺少命令表明这可能不是 MVVM。使用 MVVM,这整个操作可能属于 ViewModel,它必须为它公开一个适当的命令。如果不知道那个角色做了什么,就很难说清楚。几年前我写了一篇关于 MVVM 的介绍,似乎仍然是一个有效的起点:social.msdn.microsoft.com/Forums/vstudio/en-US/…