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;
}