[英]Propagate shortcut from window to UserControls in WPF
我想使用 KeyBindings 在窗口級別捕獲快捷方式,然后引發一個事件,所有 UserControl 都可以以某種方式訂閱該事件,以便在發出快捷方式時得到通知。
我試圖在窗口上這樣做:
<Window.InputBindings>
<KeyBinding Key="M"
Command="{x:Static someNamespace:RoutedCommands.ShortcutSingleKeyM}" />
</Window.InputBindings>
然后在用戶控件中添加 CommandBindings 以“捕獲”命令:
<UserControl.CommandBindings>
<CommandBinding Command="{x:Static someNamespace:RoutedCommands.ShortcutSingleKeyM}" Executed="OnShortcutSingleKeyM"></CommandBinding>
</UserControl.CommandBindings>
UserControl 中的OnShortcutSingleKeyM
方法沒有被擊中。 經過一些閱讀,我現在明白 RouteCommands 在樹上冒泡,這可能是這種方法不起作用的原因。
我需要 UserControl 才能監聽來自窗口的“OnShortcut”事件。 我目前正在以這種方式實現它:
這有意義嗎? 我覺得我想得太多了,實現起來應該更簡單。
從 Window 沿着樹向下傳播到 UserControls 它不會工作(至少在沒有主要管道的情況下不會)。 我是這樣實現的:
KeyBindings
和KeyDown
事件)。DependencyProperties
。 視圖將其ShortcutMcShortcutFace實例傳遞給它們。 他們訂閱OnShortcutEvent 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.