2

C# WPF アプリケーションで ScintillaNet エディット コントロールを使用しています。私のメイン ウィンドウには、いくつかの RoutedCommands セットアップがあります。ScintillaNet コントロールは、WindowsFormsHost 内でホストされます。ScintillaNet コントロールにフォーカスがある場合、RoutedCommands が機能しません。

キー ストロークをキャプチャして RoutedCommands を手動で実行しようとしましたが、CanExecute は常に失敗します。

WindowsFormsHost wfh = new WindowsFormsHost();
Scintilla editor = new Scintilla();
wfh.Child = editor;
wfh.Child.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(Child_PreviewKeyDown);

....

void Child_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
    if (e.KeyData == Keys.F5)
        // Window1 is the main window class
        // handle is a reference to the main window
        if (Window1.CmdRun.CanExecute(wfh, handle)) {
            Window1.CmdRun.Execute(wfh, handle);
        }
        else {
            Console.WriteLine("CANT EXECUTE");
        }
    }
}

誰かがこれを正しく行う方法を教えてもらえますか?

ありがとう

4

0 に答える 0