簡體   English   中英

WPF 自定義上下文菜單單擊事件未觸發

[英]WPF custom context menu click event not firing

我正在使用 WindowsFormsHost 內的 WebBrowser 創建自定義上下文菜單。 但由於某種原因,我分配給菜單項的點擊事件沒有觸發。 我分配的其他事件是。

private void Window_Loaded(object sender, RoutedEventArgs e)
{
    System.Windows.Forms.WebBrowser browser = new System.Windows.Forms.WebBrowser();
    browser.IsWebBrowserContextMenuEnabled = false;
    System.Windows.Forms.ContextMenu contextMenu = new System.Windows.Forms.ContextMenu();
    System.Windows.Forms.MenuItem menuItem = new System.Windows.Forms.MenuItem()
    {
        Text = "Add comment"
    };

    // not firing
    menuItem.Click += new EventHandler(menuItem_Click);
    // is firing
    menuItem.Select += new System.EventHandler(menuItem_Click);

    contextMenu.MenuItems.Add(menuItem);
    browser.ContextMenu = contextMenu;

    // is firing
    browser.DocumentCompleted += new System.Windows.Forms.WebBrowserDocumentCompletedEventHandler(browser_DocumentCompleted);
    // is firing
    browser.HandleCreated += new System.EventHandler(browser_HandleCreated);

    windowsFormsHost.Child = browser;
    browser.DocumentText = "Test";
}

void browser_HandleCreated(object sender, EventArgs e)
{
    throw new NotImplementedException();
}

void browser_DocumentCompleted(object sender, System.Windows.Forms.WebBrowserDocumentCompletedEventArgs e)
{
    throw new NotImplementedException();
}

void menuItem_Click(object sender, EventArgs e)
{
    throw new NotImplementedException();
}

我錯過了什么?

我知道這個問題很老,但我遇到了同樣的問題。 我通過使用 ContextMenuStrip 而不是 ContextMenu 來修復它。

System.Windows.Forms.ContextMenuStrip webBrowserMenu = new System.Windows.Forms.ContextMenuStrip();
System.Windows.Forms.ToolStripMenuItem refreshItem = new System.Windows.Forms.ToolStripMenuItem("Refresh");
refreshItem.Click += new System.EventHandler(refreshMenuItem_Click);
webBrowserMenu.Items.Add(refreshItem);

webBrowser1.ContextMenuStrip = webBrowserMenu;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM