2015-04-08 68 views
3

有沒有一種方法來禁用在WPF中System.Windows.Controls.WebBrowser控制掉落物品,如記事本,字等。 AllowDrop="False"我已經嘗試了各種選項 - 不工作。 試圖捕獲Drop,PreviewDrop,DragLeave,PreviewDragLeave,PreviewDragOver,PreviewDragEnter等事件 - 當我在WebBrowser控件上放置項目時,這些事件都不會觸發。WPF Web瀏覽器控件禁用下降

+0

也許你可以嘗試實現的IDocHostUIHandler提到http://stackoverflow.com/questions/20051892/webbrowser-dragdrop,然後覆蓋的行爲。 – AProgrammer

+0

不,這對我的情況沒有幫助。 – AMicrosoftVictim

回答

0

正如你所說,沒有丟棄事件被解僱,而且好像本地瀏覽器的控制是非常有限留下了兩種可能性:

  • 無論是用戶的另一個瀏覽器控件像wpfchromium

  • 或瀏覽器的頂部,即使在定義一個透明的彈出和處理 下降它

<WebBrowser Height="300" Width="300" x:Name="wbBrowser"/> 
    <Popup Opacity="1" AllowsTransparency="True" IsOpen="True" Placement="Center" 
    PlacementTarget="{Binding ElementName=wbBrowser}" > 
     <Border Background="Black" Opacity="0.01" 
     Width="300" Height="300"> 
     </Border> 
    </Popup> 

該解決方案是完全不相當,也需要更多的邏輯handle when the popup's parent control moves ..

......你也可以找到這個解決方案有幫助的,如果你的主要內容是HTML:

How to disable drop on wpf webbrowser control

1

使用構造函數或XAML中創建下面的方法將改變化網頁瀏覽器目前的狀態停止拖動:

private void webBrowser_Navigating(object sender, NavigatingCancelEventArgs e) 
{ 
    // The WebBrowser control is checking the Uri 
    if (e.Uri.ToString() != "Place your url string here") //ex: "http://stackoverflow.com" 
    { 
     // Uri is not the same so it cancels the process 
     e.Cancel = true; 
    } 
} 
+0

不錯,謝謝! – Esperento57