2017-09-10 3 views
0

WPF WebBrowserをクリックして入力するのを防ぐ方法はありますか?これは私がWinFormsでこれを行うことが可能であることがわかります。私が試したWPF WebBrowserのクリック&入力を無効にする

もの:

  1. browser.IsEnabled = false;は - 、動作しませんでした、まだクリックしてください(移動)とテキスト
  2. browser.Focusable = false;を入力することができます -
  3. 同じ消費するオーバーレイボタンを有しますクリックとフォーカス - WebBrowserは特別な要素です。常に他の要素の上にあります。
  4. オーバーレイボタン(3)の代わりに空白ページがロードされ、不透明度が0%に設定されたメインWebブラウザの上に、 - WPF WebBrowsersでは不透明度を適切に扱えない、e.Handled = true;
  5. browser_MouseDownイベントを動作しませんでした - イベントは、何らかの理由で、マウスで呼び出されていないダウン

私は私の試みで逃したか、間違っていたきた何かがありますか?

答えて

1

3つのイベントとブール値が私のために行いました。

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

ありがとう。 KeyDownが動作する理由についてのコメントはありますが、MouseDownはありませんか? – ViliX64

関連する問題