WPF简要制作浏览器 WPF中使用WebView2控件 WPF 应用中的 WebView2 WPF集成WebView2 完整例子及Demo c#使用WebView2例子 WPF Chromium

下一篇 WPF与WebView2双向通信 WPF与javascript相互通信

在WPF中使用WebView2控件作为浏览器有以下优势:

  1. 现代浏览器引擎

    WebView2基于Microsoft Edge(Chromium内核)浏览器,因此它可以利用最新的Web标准和功能。
  2. 跨平台支持

    WebView2支持多种操作系统和框架,包括Windows 7、8、10以及.NET Framework、.NET Core、Win32 C/C++、.NET 5、.NET 6和WinUI 2.0/3.0。
  3. 无缝集成

    WebView2可以轻松地嵌入到WPF应用程序中,提供一种混合本地应用和Web技术的开发方式,使得界面设计更加灵活。
  4. 代码复用

    已有的Web前端代码可以被重用在WebView2中,减少了开发时间和工作量。
  5. 本地API访问

    WebView2允许调用完整的本地应用程序编程接口(API),使得Web内容能够与宿主操作系统进行深度交互。
  6. 更新和安全

    WebView2依赖于定期更新和修复漏洞的Chromium内核,保证了浏览器组件的安全性和稳定性。
  7. 部署选项

    开发者可以选择使用带内核更新的部署或者固定版本内核部署,以适应不同的应用需求和更新策略。
  8. 丰富的API支持

    WebView2提供了数百个API,涵盖了从增强本机平台功能到修改浏览器体验的各种功能。
  9. 微软官方支持

    WebView2由微软持续更新和维护,具有正式的GA(General Availability)版本,为开发者提供了可靠的技术支持。
  10. 增强的用户体验

    使用WebView2可以在桌面应用程序中提供类似Web的用户体验,同时还能根据需要定制和扩展浏览器功能。

通过这些优势,WPF中的WebView2控件使得开发者能够利用成熟的Web技术构建和维护桌面应用程序,同时享受本地应用的性能和功能。这不仅简化了开发过程,还为用户提供了一种更加一致和现代化的交互体验。

例子完整下载 https://download.csdn.net/download/weijia3624/88669533

<Window x:Class="WPF_WebView2.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:WPF_WebView2" 
        xmlns:wv2="clr-namespace:Microsoft.Web.WebView2.Wpf;assembly=Microsoft.Web.WebView2.Wpf"
        mc:Ignorable="d"
        WindowStartupLocation="CenterScreen"
        Title="WPF_WebView2" Height="450" Width="800">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="30"/>
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>
        <Grid Grid.Row="0">
            <Grid.ColumnDefinitions>
                <ColumnDefinition  Width="*"/>
                <ColumnDefinition Width="70"/>
            </Grid.ColumnDefinitions>
            <Grid Grid.Column="0">
                <TextBox  x:Name="inputUrl"  VerticalContentAlignment="Center" KeyDown="inputUrl_KeyDown"/>
            </Grid>
            <StackPanel Grid.Column="2" Orientation="Horizontal" HorizontalAlignment="Left" Margin="5 0 0 0">
                <Button Content="GO" Width="60" Height="30" Click="Button_Click"/>
            </StackPanel>
        </Grid>
        <Grid Grid.Row="1">
            <wv2:WebView2 Name="webView" Source="https://www.baidu.com/"  />
        </Grid>
    </Grid>
</Window>
private void Button_Click(object sender, RoutedEventArgs e)
        {
            goUrl();
        }

        private void inputUrl_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.Key == Key.Return)
            {
                goUrl();
            }
        }

        private void goUrl() {
            string url = this.inputUrl.Text.Trim();
            try
            {
                if (url.Equals(""))
                {
                    this.webView.Source = new Uri("about:blank");
                }
                else
                {
                    url = url.IndexOf("http") > -1 ? url : "http://" + url;
                    webView.Source = new Uri(url);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }