Add WebView2Demo project
This commit is contained in:
parent
f604d53191
commit
e589d228c0
|
|
@ -1 +0,0 @@
|
||||||
Subproject commit 1d85cb160f81d5a41125d348f97c01b2db0a09b4
|
|
||||||
9
WebView2Demo/App.xaml
Normal file
9
WebView2Demo/App.xaml
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
<Application x:Class="WebView2Demo.App"
|
||||||
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
|
xmlns:local="clr-namespace:WebView2Demo"
|
||||||
|
StartupUri="MainWindow.xaml">
|
||||||
|
<Application.Resources>
|
||||||
|
|
||||||
|
</Application.Resources>
|
||||||
|
</Application>
|
||||||
13
WebView2Demo/App.xaml.cs
Normal file
13
WebView2Demo/App.xaml.cs
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
using System.Configuration;
|
||||||
|
using System.Data;
|
||||||
|
using System.Windows;
|
||||||
|
|
||||||
|
namespace WebView2Demo;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Interaction logic for App.xaml
|
||||||
|
/// </summary>
|
||||||
|
public partial class App : Application
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
10
WebView2Demo/AssemblyInfo.cs
Normal file
10
WebView2Demo/AssemblyInfo.cs
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
using System.Windows;
|
||||||
|
|
||||||
|
[assembly:ThemeInfo(
|
||||||
|
ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
|
||||||
|
//(used if a resource is not found in the page,
|
||||||
|
// or application resource dictionaries)
|
||||||
|
ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
|
||||||
|
//(used if a resource is not found in the page,
|
||||||
|
// app, or any theme specific resource dictionaries)
|
||||||
|
)]
|
||||||
22
WebView2Demo/MainWindow.xaml
Normal file
22
WebView2Demo/MainWindow.xaml
Normal file
|
|
@ -0,0 +1,22 @@
|
||||||
|
<Window x:Class="WebView2Demo.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:wv2="clr-namespace:Microsoft.Web.WebView2.Wpf;assembly=Microsoft.Web.WebView2.Wpf"
|
||||||
|
mc:Ignorable="d"
|
||||||
|
Title="无言势字幕 - WebView2 Demo" Height="500" Width="450"
|
||||||
|
Background="#0a0a0a">
|
||||||
|
<Grid>
|
||||||
|
<!-- WebView2 控件 -->
|
||||||
|
<wv2:WebView2 x:Name="WebView"
|
||||||
|
Source="https://www.baidu.com"/>
|
||||||
|
|
||||||
|
<!-- 底部按钮栏 -->
|
||||||
|
<StackPanel VerticalAlignment="Bottom" Background="#141414" Height="50">
|
||||||
|
<Button Content="刷新页面" Click="RefreshPage"
|
||||||
|
Background="#1e1e1e" Foreground="White"
|
||||||
|
Padding="15,5" Margin="10"/>
|
||||||
|
</StackPanel>
|
||||||
|
</Grid>
|
||||||
|
</Window>
|
||||||
44
WebView2Demo/MainWindow.xaml.cs
Normal file
44
WebView2Demo/MainWindow.xaml.cs
Normal file
|
|
@ -0,0 +1,44 @@
|
||||||
|
using System;
|
||||||
|
using System.Windows;
|
||||||
|
using Microsoft.Web.WebView2.Wpf;
|
||||||
|
|
||||||
|
namespace WebView2Demo
|
||||||
|
{
|
||||||
|
public partial class MainWindow : Window
|
||||||
|
{
|
||||||
|
public MainWindow()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
InitializeWebView();
|
||||||
|
}
|
||||||
|
|
||||||
|
private async void InitializeWebView()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// 初始化 WebView2
|
||||||
|
await WebView.EnsureCoreWebView2Async();
|
||||||
|
Console.WriteLine("WebView2 初始化成功!");
|
||||||
|
|
||||||
|
// 可以设置自定义 UserAgent
|
||||||
|
// WebView.CoreWebView2.Settings.UserAgent = "MyApp/1.0";
|
||||||
|
|
||||||
|
// 监听页面加载完成事件
|
||||||
|
WebView.CoreWebView2.NavigationCompleted += (s, e) =>
|
||||||
|
{
|
||||||
|
Console.WriteLine("页面加载完成, Success: " + e.IsSuccess);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
MessageBox.Show($"WebView2 初始化失败: {ex.Message}\n请确保已安装 WebView2 Runtime",
|
||||||
|
"错误", MessageBoxButton.OK, MessageBoxImage.Error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void RefreshPage(object sender, RoutedEventArgs e)
|
||||||
|
{
|
||||||
|
WebView.Reload();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
43
WebView2Demo/README.md
Normal file
43
WebView2Demo/README.md
Normal file
|
|
@ -0,0 +1,43 @@
|
||||||
|
# WebView2Demo
|
||||||
|
|
||||||
|
无言势字幕 - WebView2 学习项目
|
||||||
|
|
||||||
|
## 技术栈
|
||||||
|
|
||||||
|
- C# / .NET 8
|
||||||
|
- WPF (Windows Presentation Foundation)
|
||||||
|
- Microsoft WebView2 (Chrome 内核)
|
||||||
|
|
||||||
|
## 项目结构
|
||||||
|
|
||||||
|
```
|
||||||
|
WebView2Demo/
|
||||||
|
├── MainWindow.xaml # WPF 窗口
|
||||||
|
├── MainWindow.xaml.cs # 窗口逻辑
|
||||||
|
├── App.xaml # 应用入口
|
||||||
|
└── WebView2Demo.csproj # 项目配置
|
||||||
|
```
|
||||||
|
|
||||||
|
## 运行
|
||||||
|
|
||||||
|
```bash
|
||||||
|
dotnet restore
|
||||||
|
dotnet run
|
||||||
|
```
|
||||||
|
|
||||||
|
## 功能
|
||||||
|
|
||||||
|
- WebView2 控件加载网页
|
||||||
|
- C# 与 JavaScript 通信
|
||||||
|
- WPF 窗口嵌入浏览器
|
||||||
|
|
||||||
|
## 学习笔记
|
||||||
|
|
||||||
|
查看 [C# 学习笔记目录](../notes/)
|
||||||
|
|
||||||
|
- Lesson 01-10: C# 基础
|
||||||
|
- Lesson 11: WebView2 入门
|
||||||
|
|
||||||
|
## 作者
|
||||||
|
|
||||||
|
Rosmontis_Cloud
|
||||||
15
WebView2Demo/WebView2Demo.csproj
Normal file
15
WebView2Demo/WebView2Demo.csproj
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<OutputType>WinExe</OutputType>
|
||||||
|
<TargetFramework>net8.0-windows</TargetFramework>
|
||||||
|
<Nullable>enable</Nullable>
|
||||||
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
|
<UseWPF>true</UseWPF>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Microsoft.Web.WebView2" Version="1.0.4022.49" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
</Project>
|
||||||
Loading…
Reference in New Issue
Block a user