在WPF WebBrowser中托管的Web画布上,左键单击不起作用

多尔·科恩(Dor Cohen)

我正在尝试使用WebBrowser在WPF中显示vis.js网页,该页面显示成功,但是我可以左键单击画布内的任何项目。

鼠标缩放在画布内按预期工作。

我写了一个仅包含2个文件的简单项目:

MainWindow.xaml:

<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <WebBrowser x:Name="webBrowser"></WebBrowser>
    </Grid>
</Window>

MainWindow.xaml.cs:

using System.Windows;

namespace WpfApplication1
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            webBrowser.Navigate("http://visjs.org/examples/network/other/configuration.html");
        }
    }
}

注意:我在注册表中添加了以下项,因此我的WPF进程将使用IE11:

密钥名称:HKEY_LOCAL_MACHINE \ SOFTWARE \ WOW6432Node \ Microsoft \ Internet Explorer \ Main \ FeatureControl \ FEATURE_BROWSER_EMULATION \ processName.exe类型:REG_DWORD值数据:11000(十进制)

EVK

我不会直接回答您的问题,但是会根据我的经验为您提供一些建议,那就是:切勿对任何严重的问题使用默认的wpf WebBrowser。我尝试过多次将其用于许多不同的项目,并且总是遇到一些showtopper问题,没有例外。当然,这是IE11(10,9-我曾说过很多次)仿真。

以您的情况为例。不仅画布单击不起作用-整个页面被完全破坏。如果您尝试选择颜色,则滑块会弄乱,再次单击将不起作用,并且此页面上还有许多其他问题

因此,请勿打扰wpf WebBrowser,而只使用真实的浏览器,例如Chromium。我个人更喜欢CpfSharp,它具有wpf与铬的结合力。只需安装他们的nuget软件包(CefSharp.WPF),然后:

<Window x:Class="WpfApplication2.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:wpf="clr-namespace:CefSharp.Wpf;assembly=CefSharp.Wpf"
    mc:Ignorable="d"
    Title="MainWindow" Height="350" Width="525">
<Grid>
    <wpf:ChromiumWebBrowser x:Name="webBrowser"/>
</Grid>
</Window>

InitializeComponent();
webBrowser.Address = "http://visjs.org/examples/network/other/configuration.html";

您的页面仅显示为应有的状态。画布点击有效,没有样式被保存,拾色器有效。除了这一切,cefsharp浏览器控件是很多更灵活。您可以轻松地从javascript调用to \,拦截几乎所有事件(资源负载,重定向),可以禁用javascript \ images,甚至拦截请求并提供完全不同的数据。无需在每台客户端计算机上修复注册表。

请注意,如果要通过软件包安装CefSharp.WPF,它将要求您的项目具有x86 \ x64平台(不适用于AnyCPU)。但是,如果您有这样的要求,您确实可以毫不费力地使其与任何CPU一起使用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

WPF 调整画布大小在调度程序中不起作用

来自分类Dev

WPF按钮单击事件不起作用

来自分类Dev

ManipulationBoundaryFeedback在WPF的Web浏览器中不起作用?

来自分类Dev

JavaScript 代码在 WPF WebBrowser 加载的 HTML 页面中不起作用

来自分类Dev

JavaScript 代码在 WPF WebBrowser 加载的 HTML 页面中不起作用

来自分类Dev

在WPF中显示BitmapSource不起作用

来自分类Dev

全局样式在WPF中不起作用

来自分类Dev

Windows API在WPF中不起作用?

来自分类Dev

CharacterEllipsis在ItemsControl WPF中不起作用

来自分类Dev

全局样式在WPF中不起作用

来自分类Dev

VsBrush在WPF ResourceDictionary中不起作用

来自分类Dev

WPF ItemSource在XAML中不起作用

来自分类Dev

VsBrush在WPF ResourceDictionary中不起作用

来自分类Dev

UpdateSourceTrigger在WPF CustomControls中不起作用

来自分类Dev

wpf 中的 BorderBrush 不起作用

来自分类Dev

WPF AlternateContent不起作用

来自分类Dev

WPF MultiDataTrigger不起作用

来自分类Dev

WPF绑定不起作用

来自分类Dev

WPF DataGridComboBoxColumn不起作用

来自分类Dev

WPF MultiDataTrigger不起作用

来自分类Dev

WPF ListView不起作用

来自分类Dev

VisualStateManager WPF 不起作用

来自分类Dev

单击后,WPF标签的IsMouseOver样式不起作用

来自分类Dev

wpf:左键单击无法识别

来自分类Dev

左键单击在OpenSUSE中不起作用

来自分类Dev

WPF 图像回退对失败的 Web 图像不起作用

来自分类Dev

我正在尝试使用鼠标事件在画布(在 WPF 应用程序中)移动矩形,但它不起作用

来自分类Dev

附加属性上的WPF触发器不起作用

来自分类Dev

新行在C#/ WPF的MessageBox中不起作用