首页 > 其他分享 >WPF如何使用WebView,并且禁用F12和F5。

WPF如何使用WebView,并且禁用F12和F5。

时间:2024-07-23 20:06:40浏览次数:9  
标签:Web F5 WebView2 Microsoft F12 WPF dll WebView

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

安装WebView的nuget包

可以直接执行安装命令 Install-Package Microsoft.Web.WebView2。
也可以通过nuget包管理器,安装 Microsoft.Web.WebView2 包。
image
安装成功之后,改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控件。
image

新建全新的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

image

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

WPF运行成功之后,可以通过F5快捷键刷新界面,也可以通过F12打开开发者控制台。
image
但是线上环境通常是不允许进行刷新和打开开发者控制台的。可以通过如下代码进行禁用:

点击查看代码
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

标签:Web,F5,WebView2,Microsoft,F12,WPF,dll,WebView
From: https://www.cnblogs.com/caoruipeng/p/18319497

相关文章

  • WPF 使用ICollectionView过滤表格数据
    ICollectionView接口是一个用于提供数据视图的类,它允许你对数据进行排序、筛选和分组。可以通过静态方法CollectionViewSource.GetDefaultView(object)获取。MSDN接口说明:https://learn.microsoft.com/zh-cn/dotnet/api/system.componentmodel.icollectionview?view=windowsdes......
  • CF521E Cycling City 题解
    Description给定一张\(n\)个点\(m\)条边的无向简单图。问图中能否找到两个点,满足这两个点之间有至少三条完全不相交的简单路径。\(n,m\le2\times10^5\),图不保证连通。Solution容易发现有解地充要条件是存在两个环有边交,考虑在dfs树上做这件事。注意到非树边一定......
  • CF512D Fox And Travelling 题解
    Description给定一张\(n\)个点\(m\)条边的无向图。一个点只有当与它直接相连的点中最多只有一个点未被选择过时才可被选择。询问对于每个\(k\in[0,n]\),有序选择\(k\)个点的方案数。\(n\le100\),\(m\le\frac{n(n-1)}2\),答案对\(10^9+9\)取模。Solution容易发......
  • HDF5 与包含文件的文件夹有何不同?
    我正在开发一个开源项目处理向文件夹添加元数据。提供的(Python)API允许您浏览和访问元数据,就像它只是另一个文件夹一样。因为它只是另一个文件夹。\folder\.meta\folder\somedata.json然后我遇到了HDF5及其派生Alembic在书中阅读HDF5......
  • Simple WPF: S3实现MINIO大文件上传并显示上传进度
    SimpleWPF:S3实现MINIO大文件上传并显示上传进度 合集-SimpleWPF(9) 1.SimpleWPF:WPF透明窗体和鼠标事件穿透07-012.SimpleWPF:WPF自定义按钮外形07-073.SimpleWPF:WPF实现按钮的长按,短按功能07-084.SimpleWPF:WPF自定义一个可以定义步长的SpinBox07-095.Si......
  • Simple WPF: WPF 透明窗体和鼠标事件穿透
    SimpleWPF:WPF透明窗体和鼠标事件穿透 合集-SimpleWPF(9) 1.SimpleWPF:WPF透明窗体和鼠标事件穿透07-012.SimpleWPF:WPF自定义按钮外形07-073.SimpleWPF:WPF实现按钮的长按,短按功能07-084.SimpleWPF:WPF自定义一个可以定义步长的SpinBox07-095.SimpleWP......
  • msp430f5529lp移植OLED屏幕 iic 4针 ccs
    OLED.C  代码私发,开发环境ccs......
  • P8600&CF526F(双倍经验)
    看P8600题面比较易懂这种问区间的题目,一般都是枚举右端点,找有多少个符合条件的左端点。然后容易发现一个性质,如果一个区间最大数的下标减区间最小数的下标+1等于区间长度,那么这个区间就是一个连号。所以我们可以动态维护\(max(a_{l},...,a_{r})-min(a_{l},...,a_{r})+1=len\)\(m......
  • WPF The calling thread cannot access this object because a different thread owns
      publicintImgIdx{get{returnimgIdx;}set{if(value!=imgIdx){imgIdx=value;if(imgIdx<0){imgIdx=imgsCount-1;......
  • WPF ListBox's ItemsSource depend on another's ListBoxItem and fully implemented
    //xaml<Grid><Grid.ColumnDefinitions><ColumnDefinition/><ColumnDefinition/><ColumnDefinition/></Grid.ColumnDefinitions><ListBoxGrid.Column="0"ItemsSource=&......