WinFormのKeyDownに接続するのではなく、WpfControl自体のカスタムイベントハンドラを追加しようとすることができます。
ここは例です。たとえば、WinFormのタイプがForm1
、WpfControlがUserControl1
、WpfControlの要素ホストが呼び出されています(これは推測されません)。 - elementHost。
public Form1()
{
InitializeComponent();
elementHost.ChildChanged += ElementHost_ChildChanged;
}
private void ElementHost_ChildChanged(object sender, ChildChangedEventArgs e)
{
var ctr = (elementHost.Child as UserControl1);
if (ctr == null)
return;
ctr.KeyDown += ctr_KeyDown;
}
void ctr_KeyDown(object sender, System.Windows.Input.KeyEventArgs e)
{
/* your custom handling for key-presses */
}
UPD:e.KeyboardDevice.Modifiers
(eはSystem.Windows.Input.KeyEventArgs
ある)Ctrlキー、Altキーに関する情報を格納し、など
問題はSystem.Windows.Input.KeyEventArgsが実際に修飾キーを公開していないので、あなたができることです'Ctrl + Z'、 'Z'または 'Ctrl'のみをチェックしてください。 Keyプロパティであっても、私が見たものからのmodifierとkeyのビット単位の組み合わせではありません。 – Miguel
@Miguel、更新情報:e.KeyboardDevice.Modifiersが必要です。 –
ああ、ありがとう、私はそれを働いたことはないだろう。 Upvoted。 – Miguel