-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.xml
34 lines (34 loc) · 4.31 KB
/
index.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>唐璞玉</title>
<link>https://sugarbearr.github.io/</link>
<description>Recent content on 唐璞玉</description>
<generator>Hugo -- gohugo.io</generator>
<language>zh-cn</language>
<lastBuildDate>Thu, 18 Jan 2024 22:18:15 +0800</lastBuildDate>
<atom:link href="https://sugarbearr.github.io/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>webview2在wpf中的应用</title>
<link>https://sugarbearr.github.io/posts/webview2%E5%9C%A8wpf%E4%B8%AD%E7%9A%84%E5%BA%94%E7%94%A8/</link>
<pubDate>Thu, 18 Jan 2024 22:18:15 +0800</pubDate>
<guid>https://sugarbearr.github.io/posts/webview2%E5%9C%A8wpf%E4%B8%AD%E7%9A%84%E5%BA%94%E7%94%A8/</guid>
<description>开发环境 运行环境:.Net 6
开发环境:Visual Studio 2022 17.1.3
框架语言:WPF
安装WebView2 通过Package Manager控制台安装 Install-Package Microsoft.Web.WebView2 通过Nuget包管理器安装 !https://s1.ax1x.com/2022/04/09/LinhIe.png
在窗体中添加名字空间: xmlns:wv2=&#34;clr-namespace:Microsoft.Web.WebView2.Wpf;assembly=Microsoft.Web.WebView2.Wpf&#34; 引用WebView2控件: &lt;wv2:WebView2 x:Name=&#34;webview&#34; Grid.Row=&#34;1&#34; Source=&#34;&lt;https://www.bilibili.com&gt;&#34; /&gt; 使用WebView2 关于CoreWebView2 💡 Note:默认情况下,如果控件中没有设置Source属性,CoreWebView2是没有初始化的,此时需要我们手动初始化CoreWebView2,CoreWebView2初始化有以下两种方式:
第一种:调用EnsureCoreWebView2Async()方法 if (webView.CoreWebView2 == null) { await webView.EnsureCoreWebView2Async(); } 第二种:为Source属性赋值 webView.Source = new Url(&#34;&lt;https://www.bilibili.com&gt;&#34;); 常用设置 从初始化方式说起: var env = await CoreWebView2Environment.CreateAsync(); await webView.EnsureCoreWebView2Async(env); 这和我们最开始讲的初始化相比,多传了一个env变量参数来初始化。这个变量的工厂函数定义如下:
public static async Task&lt;CoreWebView2Environment&gt; CreateAsync( string browserExecutableFolder = null, string userDataFolder = null, CoreWebView2EnvironmentOptions options = null) 从以上代码可以看出,这个工厂函数它可以传入三个参数:
browserExecutableFolder userDataFolder options 第一个参数是选择Edge Runtime,默认为长绿版本,但我们也可以选择固定版本,当我们要使用固定版本时,需要做以下操作:</description>
</item>
<item>
<title>Rx.NET</title>
<link>https://sugarbearr.github.io/posts/rx.net/</link>
<pubDate>Mon, 15 Jan 2024 22:32:33 +0800</pubDate>
<guid>https://sugarbearr.github.io/posts/rx.net/</guid>
<description>编程范式: 编程范式分为命令式编程、声明式编程、函数式编程和响应式编程。
命令式编程: 命令式编程的主要思想是关注计算机执行的步骤,即一步一步告诉计算机先做什么再做什么。 //1. 声明变量 List&lt;int&gt; results = new List&lt;int&gt;(); //2. 循环变量 foreach(var num in Enumerable.Range(1,10)) { //3. 添加条件 if (num &gt; 5) { //4. 添加处理逻辑 results.Add(num); Console.WriteLine(num); } } 声明式编程: 声明式编程是以数据结构的形式来表达程序执行的逻辑。它的主要思想是告诉计算机应该做什么,但不指定具体要怎么做。 var nums = from num in Enumerable.Range(1,10) where num &gt; 5 select num 函数式编程: 主要思想是把运算过程尽量写成一系列嵌套的函数调用。 Enumerable.Range(1, 10).Where(num =&gt; num &gt; 5).ToList().ForEach(Console.WriteLine); 响应式编程: 响应式编程是一种面向数据流和变化传播的编程范式,旨在简化事件驱动应用的实现。响应式编程专注于如何创建依赖于变更的数据流并对变化做出响应。 IObservable&lt;int&gt; nums = Enumerable.Range(1, 10).ToObservable(); IDisposable subscription = nums.Where(num =&gt; num &gt; 5).Subscribe(Console.WriteLine); subscription.Dispose(); Rx.</description>
</item>
</channel>
</rss>