2015-04-08 69 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