客户端套浏览器壳,是如今比较浏览的客户端客户端开发方式。这篇文字简单来介绍一下如何在WPF中使用WebView

安装WebView的nuget包

可以直接执行安装命令 Install-Package Microsoft.Web.WebView2。

也可以通过nuget包管理器,安装 Microsoft.Web.WebView2 包。



安装成功之后,改nuget包有三个程序集。分别是Microsoft.Web.WebView2.Core.dll、Microsoft.Web.WebView2.WinForms.dll和Microsoft.Web.WebView2.Wpf.dll。其中Microsoft.Web.WebView2.Core.dll负责对WbeView的核心业务进行封装。Microsoft.Web.WebView2.WinForms.dll和Microsoft.Web.WebView2.Wpf.dll分别是用于WPF和Winform的程序集,主要封装了WPF版本的WebView空间和Winforn版本的WebView控件。

新建全新的WPF项目,主窗体声明命名空间,然后引入WebView空间。

声明命名空间的代码如下:

xmlns:wv2="clr-namespace:Microsoft.Web.WebView2.Wpf;assembly=Microsoft.Web.WebView2.Wpf"

引入WebView控件的代码如下:

<wv2:WebView2 Name="webView" Source="https://www.baidu.com"/>

其中Name属性为控件的名称,Source指定WebView需要导航的Url地址,可以是一个互联网地址,也可以是一个本地html地址。

MainWindow.xaml的所有代码如下:

``

点击查看代码
<Window x:Class="WpfApp1.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:local="clr-namespace:WpfApp1"
mc:Ignorable="d"
xmlns:wv2="clr-namespace:Microsoft.Web.WebView2.Wpf;assembly=Microsoft.Web.WebView2.Wpf"
Title="MainWindow" Height="450" Width="800">
<Grid>
<wv2:WebView2 Name="webView" Source="https://www.baidu.com"/>
</Grid>
</Window>

启动项目 即可看到WebView成功加载指定的Url

禁用F5刷新界面和浏览器F12开发者控制台首页。

WPF运行成功之后,可以通过F5快捷键刷新界面,也可以通过F12打开开发者控制台。



但是线上环境通常是不允许进行刷新和打开开发者控制台的。可以通过如下代码进行禁用:

点击查看代码
webView.CoreWebView2InitializationCompleted += (sender, e) =>
{
webView.CoreWebView2.Settings.AreDevToolsEnabled = false;
webView.CoreWebView2.Settings.AreBrowserAcceleratorKeysEnabled = false;
};

当然AreBrowserAcceleratorKeysEnabled禁止的不仅仅是F5快捷键,还有其他的快捷键。
Ctrl+F and F3 for Find on Page
Ctrl+P for Print
Ctrl+R and F5 for Reload
Ctrl+Plus and Ctrl+Minus for zooming
Ctrl+Shift-C and F12 for DevTools
Special keys for browser functions, such as Back, Forward, and Search
具体可以查看微软管饭的解释和说明 https://learn.microsoft.com/zh-cn/dotnet/api/microsoft.web.webview2.core.corewebview2settings.arebrowseracceleratorkeysenabled?view=webview2-dotnet-1.0.2592.51

WPF如何使用WebView,并且禁用F12和F5。的更多相关文章

  1. 网页里如何使用js禁用F12事件

    接上一篇,突然想起来,类似于网页里如何使用js禁用鼠标右击事件,还有禁用F12事件也可以禁用一下,总所周知,对于Web开发人员来说,常常要进行界面的调试.使用F12调试工具能够很方便地进行调试,查看h ...

  2. 禁用F12和鼠标右键,防止查看控制台代码

    虽然是个治标不治本的办法,还是挺有用的(对Opera无效,Opera开始控制台是Ctrl+Shift+C) 在禁用同时,自身的代码健壮性也需要加强 // 屏蔽F12 document.onkeydow ...

  3. JS禁用右键+禁用Ctrl+u+禁用F12

    第一种方法: , , ]; document.oncontextmenu = new Function("event.returnValue=false;"),//禁用右键 doc ...

  4. HTML网站右键禁用F12代码 屏蔽审查元素 防止修改页面代码

    <script>//禁止右键 function click(e) { if (document.all) { if (event.button==2||event.button==3) { ...

  5. 禁用F12,屏蔽鼠标右击、

    $(document).ready(function(){ $(document).bind("contextmenu",function(e){ return false; }) ...

  6. js 禁用F12 和右键查看源码

    <script> window.onkeydown = function(e) { if (e.keyCode === 123) { e.preventDefault() } } wind ...

  7. WPF设计模式下选定数据源?F12直达ViewModel的方法,超好用

    您只需要在xaml上新增这一行代码,记得引用对应命名空间哦 d:DataContext="{d:DesignInstance viewModel:LoginViewModel, IsDesi ...

  8. WPF 自定义命令 以及 命令的启用与禁用

    自定义命令:     在WPF中有5个命令类(ApplicationCommands.NavigationCommands.EditingCommands.ComponentCommands 以及 M ...

  9. 客户端浏览器- UWP兼容版本WebView

    WebView简介 在win10之前,浏览器控件有WPF版本webBrowser.Winform版本WebBrowser,浏览器内核为IE. win10之后,微软不再维护原有的WebBrowser,转 ...

  10. 一个好玩的 屏蔽别人审查元素F12 右键及其他复制粘贴等

    有的时候自己写的私下的个人小页面 里面有些自己的小秘密 或者别的东西 不想人别人审查元素看见 所以我提供了一段不让别人审查元素的代码(我个人比较喜欢弄有意思的东西  喜欢玩 ) //屏蔽右键菜单doc ...

随机推荐

  1. 执行docker ps时提示"dial unix /var/run/docker.sock: connect: permission denied"

    0. 创建docker用户组 sudo groupadd docker 1. 将当前用户加入docker组 # sudo gpasswd -a $USER docker $ sudo usermod ...

  2. Macos 安装md5sum、sha1sum、md5deep、sha1deep

    一.安装md5sum和sha1sum 方法一:brew 安装 # brew install md5sha1sum 方法二:编译安装 源码下载地址:http://www.microbrew.org/to ...

  3. Java中MessageFormat的坑

    目录 Java中MessageFormat的坑 问题现象 问题排查 如何解决 Java中MessageFormat的坑 问题现象 某个业务功能需要通过SSH协议执行命令查询一些数据,而某次查询居然没有 ...

  4. 使用Visual Studio Code进行前端开发并运行前端页面时提示:npm WARN Local package.json exists, but node_modules missing, did you mean to install?

    使用Visual Studio Code进行前端开发并运行前端页面时提示如下错误: npm WARN Local package.json exists, but node_modules missi ...

  5. [转]解决Android Studio初次配置可能会出现的Unkown Host问题

    Unkown Host"杩欐槸鍦ㄤ富鏈哄悕瑙f瀽鏃堕 氬父鍑虹幇鐨勬殏鏃", You may need to adjust the proxy settings in Gradle ...

  6. 手把手带你使用Karpenter减少K8s集群资源浪费

    Kubernetes 集群的主要成本因素之一是数据平面上的计算层.将 Kubernetes 集群运行在 Amazon EC2 Spot 实例上是一种显著降低计算成本的有效方式.使用 Spot 实例可以 ...

  7. 控制反转(Inversion of Control,IoC)

    依赖注入(Dependency Injection,DI)和控制反转(Inversion of Control,IoC)是软件工程中两个相关但不同的概念.它们都旨在提高代码的模块化.可维护性和可测试性 ...

  8. SpringCloud Alibaba(四) - Nacos 配置中心

    1.环境搭建 1.1 依赖 <!-- nacos注册中心 注解 @EnableDiscoveryClient --> <dependency> <groupId>c ...

  9. w3cschool-微信小程序开发文档-组件

    https://www.w3cschool.cn/weixinapp/sp6z1q8q.html 微信小程序视图容器 view view 视图容器. 属性 类型 默认值 必填 说明 最低版本 hove ...

  10. Superset 下钻与交叉筛选

    以下内容来自外网:https://github.com/apache/superset/issues/6774 具体查看外网,我目前还没有琢磨,如果你有了思路请再下方留言 下面这个网址也有个交叉筛选: ...