2017-09-10 2 views
0

WPF WebBrowser에서 사용자가 클릭하여 입력하는 것을 방지 할 수있는 방법이 있습니까? WinForms에서이 작업을 수행하는 것이 가능하다는 것이 나에게 나타납니다. 여전히 클릭 (이동) 및 텍스트 WPF WebBrowser 해제 및 입력 사용 안 함

  • browser.Focusable = false; 입력 할 수 있습니다, 작동하지 않았다 - - 오버레이 버튼을 가지고 같은
  • 을 소비하는 것이다

    1. browser.IsEnabled = false; : 나는 시도했다

      것들 클릭 및 포커스 - WebBrowser는 다른 요소 위에 항상있는 특수 요소입니다.

    2. 빈 페이지가로드 된 기본 웹 맨 위에 다른 웹 브라우저가 있고 오버레이 버튼 (3)의 대안으로 불투명도가 0 %로 설정된 특수 웹 브라우저가 있습니다. - WPF WebBrowsers는 하지 제대로 e.Handled = true;
    3. 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