0

Web ブラウザーの UIElement で PDF ファイルの右クリック (ウェル コンテキスト メニュー) を無効にしようとしています。ただし、目的のハンドラーに何を呼び出すことはありません (通常の html をロードする Web ブラウザーと同じ動作ですが、他の UIElements では動作しません)。

    public override UIElement Play()
    {
        base.Play();

        //It will be represented in a Webbrowser element
        WebBrowser element = new WebBrowser();

        element.ContextMenuOpening +=new ContextMenuEventHandler(element_ContextMenuOpening);

        //navigate to the current path of the file in the HDD, adding some parameters to avoid the Adobe Reader pannels to be shown
        element.Source = new Uri(path+"#toolbar=0&navpanes=0");
        return element;
    }

    public void element_ContextMenuOpening(Object obj, ContextMenuEventArgs e)
    {
        Console.WriteLine("CONTEXT MENU PDF");
    }

「CONTEXT MENU PDF」行は印刷されません。MouseDown も試しましたが、同じままです。

編集 1: MephestoKhaan のおかげで、webbrowser を介して Web でこれを機能させることができました。PDFの場合は似たようなものである必要があり、Webbrowser.documentオブジェクトをキャストする正しいクラスをまだ探しています。

    public override UIElement Play()
    {
        base.Play();

        //the element will be represented in a webbroser
        element = new WebBrowser();
        //load the web indicated by the path (url)
        element.NavigateToString(Path);
        element.Source = new Uri(Path);

        //disable context menu
        mshtml.HTMLDocumentEvents2_Event iEvent;
        iEvent = (mshtml.HTMLDocumentEvents2_Event) element.Document;
        iEvent.oncontextmenu += new mshtml.HTMLDocumentEvents2_oncontextmenuEventHandler(iEvent_oncontextmenu); 


        return element;
    }

    bool iEvent_oncontextmenu(mshtml.IHTMLEventObj e)
    {
        return false;
    }
4

2 に答える 2

1

MephestoKhaanは、Webブラウザー(例ではWeb)を介した要素の正しいアプローチですが、Webブラウザーを介してAcrobat Readerで苦労した後、FoxitReaderに変更しました。

Foxitを使用すると、すべてのメニューと右クリックイベントを設定で直接無効にして、フルスクリーンで開くことができます(Webブラウザーではなく別のウィンドウ)。それは私が求めていたものではありませんが、私の最悪の問題を解決しました(PDFビューアにコンテキストメニューがありません)。

レコードの場合>ウィンドウ上にボタンまたはカスタムインターフェイスが必要な場合は、ポップアップを使用して、ウィンドウがすべての上にくるように設定します。

于 2012-07-31T09:27:08.600 に答える
0

これを試してください: http://support.microsoft.com/?kbid=312777 (ここからWPF WebBrowser Mouse Events not working as expected . WPF 自体がコントロールを管理していないように見えるため、ハンドラーをバインドする必要があります。ドキュメントに。

于 2012-07-26T20:22:38.590 に答える