簡體   English   中英

WPF WebBrowser禁用單擊和鍵入

[英]WPF WebBrowser disable clicking & typing

有沒有一種方法可以防止用戶單擊和鍵入WPF WebBrowser? 在我看來,只能在WinForms中執行此操作。

我嘗試過的事情:

  1. browser.IsEnabled = false; -無效,仍然可以點擊(導航)並輸入文字
  2. browser.Focusable = false; -一樣
  3. 具有疊加按鈕,這會占用點擊和焦點-WebBrowser是一個特殊元素,始終位於其他元素之上
  4. 在主頁面頂部放置另一個WebBrowser,並加載空白頁並將不透明度設置為0%,以替代覆蓋按鈕(3.)-WPF WebBrowsers無法正確處理不透明度,無法正常工作
  5. 具有e.Handled = true; browser_MouseDown事件e.Handled = true; -由於某種原因未在按下鼠標時調用該事件

嘗試中是否有我錯過或做錯的事情?

三個事件和布爾為我做了。

    bool BrowserIsLoaded = false;

    private void Browser_LoadCompleted(object sender, NavigationEventArgs e)
    {
        BrowserIsLoaded = true;
    }

    private void Browser_Navigating(object sender, NavigatingCancelEventArgs e)
    {
        if(BrowserIsLoaded)
            e.Cancel = true;
    }

    private void Browser_PreviewKeyDown(object sender, KeyEventArgs e)
    {
        if (BrowserIsLoaded)
            e.Handled = true;
    }

瀏覽器完成加載后,將觸發LoadCompleted事件。 設置一個布爾值,然后嘗試在嘗試輸入框時嘗試導航到新頁面時進行檢查。

如果您不想使用自己的布爾值(我將其用於其他用途,因此對我來說很有意義),則可以在需要時詢問瀏覽器是否已加載:

    private void Browser_Navigating(object sender, NavigatingCancelEventArgs e)
    {
         WebBrowser wb = (WebBrowser)sender;
         if(wb.IsLoaded)
         {
              e.Cancel = true;
         }
    }

暫無
暫無

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

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