0

私たちは現在、デスクトップ クライアントと Web クライアントの両方に同じコントロールのビューを持つことを要求するプロジェクトに取り組んでいます。両方のニーズを満たすために、WPF と Silverlight を使用しています。WPF コントロールを備えたデスクトップ アプリケーションでは、"Alt" キー修飾子を使用して、マウスでコントロール内の特定のタスクを実行します。Silverlight で同じ機能を実装しており、Iternet Explorer が同じキーを使用してメニュー バーとステータス バーを表示することがわかりました...基本的に、クライアントが Alt キーを押しながらマウスを使用すると、この奇妙な動作が発生します。それで、私の質問は、IE で Alt イベントを処理して、Alt イベントが発生しないようにするにはどうすればよいですか? ありがとう!

4

2 に答える 2

0

あなたがしたいことは次のとおりです(これがメニューを非表示にするかどうかはわかりません

  • Alt キーをキャプチャ (JavaScript では、必ず JQuery を追加してください)
  • Silverlight ホストにフォーカスする
  • C# メソッドを呼び出す

代替キャプチャ

<script type="text/javascript">
    var slHost = null;
    $(document).ready(function () {
        slHost = $('#silverlightControlHost'); // Caches Silverlight Host find the div id that holds the silverlight object tag
    });

    $(document).keydown(function (e) {
        if (e.altKey) {
            focus();
            if (slHost)
                slHost.Content.ScriptableObjectNameThatsBelow.MethodNameInClass();
        }
    });  
</script>

JS から C# を呼び出す

[ScriptableType] //Attribute above class

HtmlPage.RegisterScriptableObject("Name of Class or whatever", this); // Add to constructor

[ScriptableMember] // Attribute above method
于 2013-06-18T21:24:08.233 に答える