需要在 webview Win 10 UWP 中获取鼠标事件

2024-03-08

我正在创建一个 win 10 UWP 应用程序。

<Grid>
<WebView x:Name="WebViewElm"/>
</Grid>

我在其中添加了一个 webview,我需要获取 webview 元素的鼠标右键单击和拖放事件。但现在它正在为浏览器获取事件。我如何处理网络视图中的输入事件


如何将元素从 XAML 拖动到 WebView 的示例。这不是完整的解决方案,但可能对您有帮助。

XAML:

    <StackPanel Orientation="Vertical" Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    <WebView DefaultBackgroundColor="LightGray" Source="ms-appx-web:///HTMLPage1.html" PointerReleased="WebViewElm_PointerReleased" Width="300" Height="300" x:Name="WebViewElm"></WebView>
    <TextBlock x:Name="txtZiel" DragOver="txtZiel_DragOver" PointerReleased="txtZiel_PointerReleased" >2</TextBlock>       
    </StackPanel>

C# code:

    private async void WebViewElm_PointerReleased(object sender, PointerRoutedEventArgs e)
    {
      await WebViewElm.InvokeScriptAsync("callFromExternal", new string[] { txtZiel.Text });
    }

    private async void WebViewElm_NavigationCompleted(WebView sender, WebViewNavigationCompletedEventArgs args)
    {
        await WebViewElm.InvokeScriptAsync("LoadingFinished", null);
    }

HTML:

<body>
<p id="txtClick">1</p>
</body>

JavaScript:

    function callFromExternal(somedrag) {    
        document.getElementById("txtClick").innerHTML = somedrag;
    }

您唯一需要检查的就是将鼠标悬停在 JavaScript 代码中的段落元素上。

如果你想检查 JavaScript 代码中的事件,你可以添加NavigationCompleted="WebViewElm_NavigationCompleted" and ScriptNotify =“WebViewWithJSInjection_ScriptNotify”WebView 和 C# 事件的属性

private async void WebViewElm_NavigationCompleted(WebView sender, WebViewNavigationCompletedEventArgs args)
    {
        await WebViewElm.InvokeScriptAsync("LoadingFinished", null);
    }

   private void WebViewWithJSInjection_ScriptNotify(object sender, NotifyEventArgs e)
    {
       // here in e.Value you can get string with document.getElementById("txtClick").innerHTML
    }

在 JavaScript 中添加函数:

    function LoadingFinished() 
    {
      document.getElementById('txtClick').addEventListener("mousedown", callExternal);
    }

    function callExternal()
    {
      window.external.notify(document.getElementById("txtClick").innerHTML);
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

需要在 webview Win 10 UWP 中获取鼠标事件 的相关文章

  • 在 C# 中使用“using”关键字避免多次处置的最佳实践

    当变量是 IDisposable 时 我们有using关键字来管理处置 但是如果我们在方法中返回值怎么办 using twice StringContent stringToStringContent string str using St
  • 是否可以从 C++ 应用程序调用 C# 应用程序?

    我是一名编程学生 现在我已经上了两门 C 课程 这个学期我将参加我的第一门 C 课程 出于好奇 是否可以从 C 应用程序调用 C 应用程序 如果是的话 是否还可以检查运行该程序的计算机是否具有 NET框架 我只是很好奇 我想如果可能的话 这
  • 无法将 std::min 传递给函数,std::min 的副本有效

    Passing std min函数无法编译 我复制了 libcpp 声明std min进入我的源文件并且它可以工作 std 版本有什么问题 clang 和 gcc 也会发生同样的情况 在 Godbolt 上测试 https godbolt
  • IEnumerable 的 String.Join(string, string[]) 的类似物

    class String包含非常有用的方法 String Join string string 它从数组创建一个字符串 用给定的符号分隔数组的每个元素 但一般来说 它不会在最后一个元素之后添加分隔符 我将它用于 ASP NET 编码 以用
  • 叮当错误?命名空间模板类的朋友

    以下代码在 clang 下无法编译 但在 gcc 和 VS 下可以编译 template
  • 异常堆栈跟踪不显示抛出异常的位置

    通常 当我抛出异常 捕获它并打印出堆栈跟踪时 我会看到抛出异常的调用 导致该异常的调用 导致该异常的调用that 依此类推回到整个程序的根 现在它只向我显示异常所在的调用caught 而不是它所在的地方thrown 我不明白是什么改变导致了
  • 如果 JSON.NET 中的值为 null 或空格,则防止序列化

    我有一个对象需要以这样的方式序列化 即 null 和 空白 空或只是空格 值都不会序列化 我不控制对象本身 因此无法设置属性 但我知道所有属性都是字符串 环境NullValueHandling显然 忽略 只能让我找到解决方案的一部分 它 似
  • 将设置函数(setter)标记为 constexpr 的目的是什么? [复制]

    这个问题在这里已经有答案了 我无法理解将 setter 函数标记为的目的constexpr 自 C 14 起这是允许的 我的误解来自以下情况 我使用 constexpr c tor 声明一个类 并且我将通过创建该类的 constexpr 实
  • C# 处理标准输入

    我目前正在尝试通过命令行断开与网络文件夹的连接 并使用以下代码 System Diagnostics Process process2 new System Diagnostics Process System Diagnostics Pr
  • 将下拉列表与字典绑定

    我将字典绑定到下拉列表 举例来说 我的字典中有以下项目 Test1 123 Test2 321 我希望下拉文本采用以下格式 Test1 Count 123 Test2 Count 321 我沿着以下路径走 但没有运气 MyDropDown
  • C# 编译器数字文字

    有谁知道 C 编译器数字文字修饰符的完整列表 默认情况下 声明 0 使其成为 Int32 声明 0 0 使其成为 Double 我可以在末尾使用文字修饰符 f 来确保某些内容被视为 Single 例如像这样 var x 0 x is Int
  • 如何在win32中使用GetSaveFileName保存文件?

    我编写此代码是为了获取 fileName 来保存我的文件 include stdafx h include
  • 通过 C# Mailkit / Mimekit 发送电子邮件,但出现服务器证书错误

    Visual Studio 2015 中的 0 代码 1 我正在使用 Mailkit 最新版本 1 18 1 1 从我自己的电子邮件服务器发送电子邮件 2 电子邮件服务器具有不受信任的自签名证书 3 我在代码中添加了以下两行 以忽略服务器证
  • 如何在 C# 中获取 Json 数组?

    我有一个像这样的 Json 字符串 我想将它加载到 C 数组中 当我尝试这样做时 我收到异常 我的字符串 customerInformation customerId 123 CustomerName Age 39 Gender Male
  • 使用 OleDbCommandBuilder 时访问 SQL 语法错误

    我要在 C 中使用 OleDbDataAdapter 在 Access 数据库中插入数据 但收到错误消息INSERT INTO 命令中的语法错误 BackgroundWorker worker new BackgroundWorker Ol
  • 如何使用 CSI.exe 脚本参数

    当你运行csi exe 安装了 Visual Studio 2015 update 2 您将得到以下语法 Microsoft R Visual C Interactive Compiler version 1 2 0 51106 Copyr
  • 使用多线程进行矩阵乘法?

    我应该使用线程将两个矩阵相乘 有两件事 当我运行程序时 我不断得到 0 我还收到消息错误 对于每个错误 它在粗体行上显示 警告 从不兼容的指针类型传递 printMatrix 的参数1 我尝试打印输出 还要注意 第一个粗体块 这是我解决问题
  • 在哪里可以下载没有 Visual Studio 2010 的 C# 4.0 编译器?

    我知道 CTP VS 2010 映像 但我可以只下载 NET Framework 4 0 和 C 编译器吗 AFAIK VS 2010 CTP 仅作为 VM 映像提供 我不相信 Microsoft 发布了 VS 的安装程序 其中一个绝对不适
  • printf或iostream如何指定点后的最大位数

    字符串采用什么格式printf or iomanip我应该使用 iostream 中的运算符以以下格式打印浮点数 125 0 gt 125 125 1 gt 125 1 125 12312 gt 125 12 1 12345 gt 1 12
  • 嵌入式二进制资源 - 如何枚举嵌入的图像文件?

    我按照中的说明进行操作这本书 http www apress com book view 9781430225492 关于资源等的章节 我不太明白的是 如何替换它 images Add new BitmapImage new Uri Ima

随机推荐

  • 当表单数据的各个部分位于不同的页面上时,如何存储它们?

    每当我要为客户准备一份长表格时 我总是想将其分成单独的页面 这样访问者就不必填写全部内容 而是分步骤填写 就像是 Step 1 gt Step 2 gt Step 3 gt Thank You 我从未这样做过 原因只有一个 我不知道如何有效
  • 为什么我想要 `setRetainInstance(false)`? - 或 - 处理设备旋转的正确方法

    如果我对此有任何错误 请纠正我 这是一种澄清问题 因为我还没有在任何地方看到它明确写过 在Android 4中 您可以调用setRetainInstance true on a Fragment这样在配置更改时 这基本上意味着设备旋转 Fr
  • 在Java中通过对象引用访问静态变量

    为什么我们可以通过Java中的对象引用来访问静态变量 如下面的代码 public class Static private static String x Static variable public String getX return
  • 通过 Cygwin 在 Windows 上出现错误 Hadoop:无法找到 null\bin\winutils.exe

    当我设置HADOOP HOME cygdrive c ecosystem hadoop 2 5 1然后尝试运行bin hadoop 文件系统 or bin hadoop hadoop streaming jar从 Cygwin 我收到以下错
  • exec-maven-plugin 错误,即使在工作示例中也是如此

    EDIT5 更新 我正在使用 Maven 3 3 3 我只是创建新项目并添加编译和执行插件 作为网络上的示例 我尝试执行 但出现错误 ERROR Failed to execute goal org codehaus mojo exec m
  • 在 Visual C++ 中分配对齐数据 (memalign)

    我有一个用 C 编写的小型原型程序 在 Linux 下运行 使用memalign函数分配与边界 如页面 对齐的区域 Visual C 中有等效的函数吗 您正在寻找 aligned malloc http msdn microsoft com
  • 从应用程序内运行仪器测试并等待结果

    我正在开发一个 QA 自动化解决方案 可以在 Android 上记录 回放 QA 测试 一个关键的业务要求是在回放录制的测试时不依赖于连接的 PC 为此 我尝试在没有连接电脑的情况下运行仪器测试 具体来说 Appium UiAutomato
  • AngularJS 中的绑定和消化是如何工作的?

    AngularJS 与其他 JavaScript MVC 框架的区别之一是它能够使用绑定将 JavaScript 中的绑定值回显到 HTML 中 当您为 scope 变量分配任何值时 Angular 会 自动 执行此操作 但这有多自动呢 有
  • CSS - 当链接悬停时更改另一个元素的样式?

    如何在链接悬停时更改另一个元素的样式 无需 jQuery JavaScript ul gt li gt a hover main opacity 0 1 main p font size 200px
  • 还有其他半/便携式方法来动态分配内存吗?

    this char buf NULL scanf ms buf 将获得动态分配的字符缓冲区 我知道这仅限于使用 Gcc 特别是 glibc 2 7 版本 编译的代码 我也知道 正确 和便携的方法是只使用malloc 和朋友 获取记忆 I m
  • 获取 jsoup 中元素的字符偏移量

    我需要将 jsoup 元素映射回源 HTML 中的特定字符偏移量 换句话说 如果我的 HTML 看起来像这样 Hello br World 我需要知道 Hello 从偏移量 0 开始 长度为 6 个字符 br 从偏移量 6 开始 长度为 5
  • Windows Phone 8(WP8) C# 代码不安全?

    编辑 您可以使用不安全的代码 您只需手动编辑 proj 文件 当我可以在手机上使用本机 C 代码时 为什么或为什么 WP8 上的 C 不支持不安全代码 我没想到这一点 我的意思是 拜托 我对 Microsoft 试图强行使用 C 的做法感到
  • id 表达式到底是什么?

    我无法清楚地理解什么是id expression是 我将首先遵循我在 C 标准的最新工作草案中发现的内容 冒险定义一个identifier 标识符是任意长的字母和数字序列 所以看起来任意长的字母和数字序列都可以是id expression
  • React Native 中的热重载和实时重载有什么区别?

    我在这里有点困惑 当我调试 React Native 应用程序时 我通常会启用两者热重载 and 实时重新加载 我想知道它们之间有什么区别 实时重新加载当文件更改时重新加载或刷新整个应用程序 例如 如果您有四个链接深入导航并保存了更改 则实
  • 如何从kinect fracetrack获取网格?

    如何获取 kinect 面部追踪网格 这是网格 https i stack imgur com aPtJt jpg https i stack imgur com aPtJt jpg 我尝试了多种方法 但无法使其发挥作用 e g http
  • 等待集合获取主干中的所有内容

    我有两套收藏 一个用于类别 另一个用于项目 我需要等待类别完成获取所有内容 以便为要获取的项目设置类别 另外 每次单击类别时 我都必须重新获取新的项目集合 因为每次单击类别时都会进行分页 它不会刷新或重新获取集合 因此分页代码会弄乱错误的集
  • 使用 It.IsAny() 的 Moq 单元测试失败

    我正在使用 Moq 为项目编写单元测试 当我尝试验证 DateTime 属性是否已分配值时 其中一个测试失败 这是我的验证 失败 mockTaskContext Verify context gt context TaskQueue Add
  • HDFS 作为 cloudera 快速入门 docker 中的卷

    我对 hadoop 和 docker 都很陌生 我一直致力于扩展 cloudera quickstart docker 镜像 docker 文件 并希望从主机挂载一个目录并将其映射到 hdfs 位置 以便提高性能并将数据保存在本地 当我在任
  • 使用 Logic App 将文件从 SFTP 服务器复制到 Blob 存储

    我想使用逻辑应用将文件从 SFTP 服务器复制到 Blob 存储 逻辑应用每 3 分钟由 重复 块触发一次 并检查服务器上有哪些文件以便复制它们 为了检查服务器上有哪些文件 我使用 列出文件夹中的文件 块 复制本身是通过管道运行执行的 到目
  • 需要在 webview Win 10 UWP 中获取鼠标事件

    我正在创建一个 win 10 UWP 应用程序