XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFEExtension.NetCore.WinUIHelper

【DLL】WinUI的各种工具类,帮助开发者快速构建一个模块化的WinUI项目

公开
关注 0 Fork 0 Star 0
返回提交历史

XFEstudio/XFEExtension.NetCore.WinUIHelper

添加WebView服务

ef41476
XFE工作室室长 <mail@xfegzs.com>
提交于

代码差异

6 个文件 +93 -0
Added XFEExtension.NetCore.WinUIHelper.TestApp/ViewModels/WebViewTestPageViewModel.cs +16 -0
@@ -0,0 +1,16 @@
1 using XFEExtension.NetCore.WinUIHelper.Interface.Services;
2 using XFEExtension.NetCore.WinUIHelper.Utilities;
3
4 namespace XFEExtension.NetCore.WinUIHelper.TestApp.ViewModels;
5
6 public partial class WebViewTestPageViewModel : ViewModelBase
7 {
8 public IAutoNavigationParameterService<string> AutoNavigationParameterService { get; set; } = ServiceManager.GetService<IAutoNavigationParameterService<string>>();
9
10 public WebViewTestPageViewModel() => AutoNavigationParameterService.ParameterChange += AutoNavigationParameterService_ParameterChange;
11
12 private void AutoNavigationParameterService_ParameterChange(object? sender, string? e)
13 {
14
15 }
16 }
Added XFEExtension.NetCore.WinUIHelper.TestApp/Views/WebViewTestPage.xaml +14 -0
@@ -0,0 +1,14 @@
1 <?xml version="1.0" encoding="utf-8"?>
2 <Page
3 x:Class="XFEExtension.NetCore.WinUIHelper.TestApp.Views.WebViewTestPage"
4 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
5 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
6 xmlns:local="using:XFEExtension.NetCore.WinUIHelper.TestApp.Views"
7 xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
8 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
9 mc:Ignorable="d">
10
11 <Grid>
12 <WebView2/>
13 </Grid>
14 </Page>
Added XFEExtension.NetCore.WinUIHelper.TestApp/Views/WebViewTestPage.xaml.cs +14 -0
@@ -0,0 +1,14 @@
1 namespace XFEExtension.NetCore.WinUIHelper.TestApp.Views;
2
3 /// <summary>
4 /// An empty page that can be used on its own or navigated to within a Frame.
5 /// </summary>
6 public sealed partial class WebViewTestPage : Page
7 {
8 public static WebViewTestPage? Current { get; set; }
9 public WebViewTestPageViewModel ViewModel { get; set; } = new();
10 public WebViewTestPage()
11 {
12 InitializeComponent();
13 }
14 }
Modified XFEExtension.NetCore.WinUIHelper.TestApp/XFEExtension.NetCore.WinUIHelper.TestApp.csproj +6 -0
@@ -18,6 +18,7 @@
18 18 <ItemGroup>
19 19 <None Remove="Views\MainPage.xaml" />
20 20 <None Remove="Views\TestPage.xaml" />
21 <None Remove="Views\WebViewTestPage.xaml" />
21 22 </ItemGroup>
22 23
23 24 <ItemGroup>
@@ -66,6 +67,11 @@
66 67 <ItemGroup>
67 68 <ProjectReference Include="..\XFEExtension.NetCore.WinUIHelper\XFEExtension.NetCore.WinUIHelper.csproj" />
68 69 </ItemGroup>
70 <ItemGroup>
71 <Page Update="Views\WebViewTestPage.xaml">
72 <Generator>MSBuild:Compile</Generator>
73 </Page>
74 </ItemGroup>
69 75 <ItemGroup>
70 76 <Page Update="Views\TestPage.xaml">
71 77 <Generator>MSBuild:Compile</Generator>
Added XFEExtension.NetCore.WinUIHelper/Implements/Services/WebViewService.cs +20 -0
@@ -0,0 +1,20 @@
1 using Windows.Foundation;
2 using XFEExtension.NetCore.WinUIHelper.Interface.Services;
3
4 namespace XFEExtension.NetCore.WinUIHelper.Implements.Services;
5
6 class WebViewService : IWebViewService
7 {
8 private WebView2? _webView2;
9 public WebView2 WebView => _webView2 ?? throw new InvalidOperationException("WebView2 has not been initialized.");
10
11 public event TypedEventHandler<WebView2, CoreWebView2InitializedEventArgs>? Initialized;
12
13 public void Initialize(WebView2 webView2)
14 {
15 _webView2 = webView2;
16 _webView2.CoreWebView2Initialized += WebView2_CoreWebView2Initialized; ;
17 }
18
19 private void WebView2_CoreWebView2Initialized(WebView2 sender, CoreWebView2InitializedEventArgs args) => Initialized?.Invoke(sender, args);
20 }
Added XFEExtension.NetCore.WinUIHelper/Interface/Services/IWebViewService.cs +23 -0
@@ -0,0 +1,23 @@
1 using Windows.Foundation;
2
3 namespace XFEExtension.NetCore.WinUIHelper.Interface.Services;
4
5 /// <summary>
6 /// WebView服务
7 /// </summary>
8 public interface IWebViewService
9 {
10 /// <summary>
11 /// WebView控件
12 /// </summary>
13 public WebView2 WebView { get; }
14 /// <summary>
15 /// 初始化完成
16 /// </summary>
17 public event TypedEventHandler<WebView2, CoreWebView2InitializedEventArgs> Initialized;
18 /// <summary>
19 /// 初始化WebView控件
20 /// </summary>
21 /// <param name="webView2"></param>
22 public void Initialize(WebView2 webView2);
23 }