2011-08-12 165 views
0

我有兩個自定義控件。第一個包含一個文本框和一個彈出/下拉菜單。另一個由擴展器和擴展器內的一些內容組成。WPF:如何在沒有焦點的自定義控件上製作KeyBinding

大多數情況下,我會在第一個彈出窗口中顯示第二個控件。

第二個控件應該有一個用於切換擴展器的熱鍵。

如何在第二個控件中創建一個鍵綁定,使其即使焦點位於第一個控件的文本框內也能工作?

+0

我認爲你不能,沒有一些技巧。 最簡單的方法是創建一個屬性,將其綁定到Expander.IsExpanded屬性,並在你的'Command'中進行更改。但是你的'Command'應該是第一個控件(或者帶有文本框)的''keybind''。 – stukselbax

回答

0

我不認爲焦點對於KeyBindings工作總是至關重要的......你是否嘗試將KeyBinding的CommandTarget設置爲Expander控件?

類似下面...

<KeyBinding Key="O" Modifiers="Control" 
      Command="localns:ApplicationWindow.Open" 
      CommandTarget="{x:Static localns:MyWindow.CustomControlInstance.Expander}" /> 

讓我知道,如果這有助於。