首页 > 其他分享 >WPF使用WebView2的空域问题的解决方案

WPF使用WebView2的空域问题的解决方案

时间:2023-09-16 17:46:03浏览次数:36  
标签:控件 解决方案 WebView2 空域 组件 WPF

我在之前文章中介绍过WPF使用WebView2的空域问题(Airspace issuse),距离那篇文章大半年后,那个issue下有一个第好用的第三方解决方案了,我这里介绍一下。

引入Microsoft.Web.WebView2组件,同时引入CrissCross.WPF.WebView2组件

<ItemGroup>
  <PackageReference Include="CrissCross.WPF.WebView2" Version="1.0.3" />
  <PackageReference Include="Microsoft.Web.WebView2" Version="1.0.2065-prerelease" />
</ItemGroup>

主窗口示例如下:

<Window x:Class="WpfApp2.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:rxnav="https://github.com/ChrisPulman/CrissCross"
        xmlns:local="clr-namespace:WpfApp2"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <rxnav:WebView2Wpf x:Name="WebView2Wpf" Source="https://www.cnblogs.com">
         <Grid>
              <Button Opacity="0.8" Content="I am on top of WebView2 control with Criscross" Height="50" Width="575" FontSize="25" HorizontalAlignment="Center" Foreground="LimeGreen" Click="Button_Click" />
         </Grid>
    </rxnav:WebView2Wpf>
</Window>

这里是在CrissCrossWebView2Wpf.WebView2Wpf中封装了webview2控件,但同时可以在此控件中放置子控件, 子控件可以是任意wpf组件,子控件可以覆盖在webview之上,并且支持透明等各种属性。

我试了一下这个示例,运行良好,虽然和普通wpf组件相比还是有一些限制,不过已经满足了大部分的需求(大部分的时候无非就是想在浏览器上叠一个控件而已)。即使没有官方解决方案,也可以用这个组件顶上了。两年多的一个bug终于有了一个比较令人满意的解决方案。

标签:控件,解决方案,WebView2,空域,组件,WPF
From: https://www.cnblogs.com/TianFang/p/17707013.html

相关文章

  • 【愚公系列】2023年09月 WPF控件专题 TabControl控件详解
    (文章目录)前言WPF控件是WindowsPresentationFoundation(WPF)中的基本用户界面元素。它们是可视化对象,可以用来创建各种用户界面。WPF控件可以分为两类:原生控件和自定义控件。原生控件是由Microsoft提供的内置控件,如Button、TextBox、Label、ComboBox等。这些控件都是WPF中常见......
  • WPF 抖动动画
    ///<summary>///控件抖动///</summary>///<paramname="translate"></param>///<paramname="power">抖动第一下偏移量</param>///<paramname="range"......
  • WPF动画入门教程
    WindowsPresentationFoundation(WPF)是一种用于创建Windows客户端应用程序的UI框架。它让我们能够创建丰富的图形界面,包括各种各样的动画效果。接下来,我们将介绍如何在WPF中创建简单的动画。文章最后将给出源码,源码包括文章中的动画和一个水印按钮,一个简单的时钟动画,一个复杂的......
  • 【愚公系列】2023年09月 WPF控件专题 Expander控件详解
    (文章目录)前言WPF控件是WindowsPresentationFoundation(WPF)中的基本用户界面元素。它们是可视化对象,可以用来创建各种用户界面。WPF控件可以分为两类:原生控件和自定义控件。原生控件是由Microsoft提供的内置控件,如Button、TextBox、Label、ComboBox等。这些控件都是WPF中常见......
  • WPF 绘制实时曲线图
    效果图地址:https://www.bilibili.com/video/BV1PN411W7Ut通过Writeablebitmapex,gdi+,然后渲染到前台image中实现实时绘制曲线图 部分源码  视频底部有源码联系方式......
  • 【愚公系列】2023年09月 WPF控件专题 Groupbox控件详解
    (文章目录)前言WPF控件是WindowsPresentationFoundation(WPF)中的基本用户界面元素。它们是可视化对象,可以用来创建各种用户界面。WPF控件可以分为两类:原生控件和自定义控件。原生控件是由Microsoft提供的内置控件,如Button、TextBox、Label、ComboBox等。这些控件都是WPF中常见......
  • 界面控件DevExpress WPF TreeMap,轻松可视化复杂的分层结构数据!
    DevExpressWPF TreeMap控件允许用户使用嵌套的矩形块可视化复杂的平面或分层结构数据。P.S:DevExpressWPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpressWPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的......
  • 循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(3)--自定义用
    在我们创建界面元素的时候,不管在Vue3+ElementPlus的前端上,还是Winform桌面端上,都是会利用自定义用户控件来快速重用一些自定义的界面内容,对自定义用户控件的封装处理,也是我们开发WPF应用需要熟悉的一环。本篇随笔继续深入介绍介绍基于CommunityToolkit.Mvvm和HandyControl的WPF应......
  • WPF C# 使用扫描枪获取扫描数据
    通用扫码帮助类CommonScanCodeHelperusingSystem;usingSystem.Collections.Generic;usingSystem.Diagnostics;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Input;usingSystem.Windows.Threading;namespaceTools{///<summary>///通用扫......
  • WPF 获取键盘点击值、组合键方式
    在xmal.cs文件中实现,或者重写OnPreviewKeyDown()方法:stringcodeValue="";intInputCount=0;protectedoverridevoidOnPreviewKeyDown(KeyEventArgse){intkeyValue=Convert.ToInt32(e.Key);if(keyValue==156)keyValue=Convert.ToInt32(e.......