跳過到頁腳內容
.NET幫助

Webview2 C# 示例(開發者的工作原理)

WebView2,是Microsoft最新的網頁視圖技術,基於Chromium引擎,這是驅動流行的Microsoft Edge瀏覽器的引擎。 固定版本分發允許C#開發人員將超文本標記語言、CSS和JavaScript等網頁技術直接嵌入到本地應用程序中。 此集成開啟了一個可能性的世界,從顯示動態內容到構建複雜的用戶界面。

IronPDF 概覽 提供了在 C# 應用程序中生成、操作和渲染 PDF 文件的能力。 無論是將在線內容轉換為 PDF 還是從頭創建文檔,IronPDF 提供了處理 PDF 的簡單方法,可以與基於網頁的數據和界面一起使用。

本教程將引導您在 C# 應用程序中集成 WebView2 和 IronPDF。從基本設置到高級功能,我們將探討如何將這些工具結合使用,以增強應用程序的能力。

簡介 WebView2

WebView2 由基於 Chromium 的 Microsoft Edge 瀏覽器提供支持,是將網頁內容嵌入到 C# 應用程序中的重要進步。 這項技術使開發人員能夠在 Windows 應用程序中集成現代網絡的全範圍,提供增強的性能、兼容性和功能。

Chromium Edge 的優勢

Chromium 基礎:使用與 Microsoft Edge 相同的引擎,WebView2 提供比舊的網頁視圖控件更一致和可靠的網頁內容渲染。

現代網路標準:支持最新的網路標準,開發人員可以確保 Windows 應用程序中的網頁內容始終與當前網路技術保持同步。

開始使用 WebView2

在 C# 項目中設置 WebView2

將 WebView2 集成到 C# 項目中是一個簡單的過程。 它涉及通過 NuGet 添加 WebView2 SDK,這是 Microsoft 為 .NET 提供的包管理器。 此 SDK 提供嵌入 Web 內容至應用程序所需的庫和工具,使用 WebView2。

Webview2 C# 示例(開發人員如何使用):圖 1 - WebView2

在 Windows Forms 和 WPF 中實現 WebView2

WebView2 可以在不同類型的 C# 應用程序中使用,包括 Windows Forms(WinForms)和 Windows Presentation Foundation(WPF)。 每個框架在實現方面都有其細微差別,但核心概念是相同的:WebView2 作為您應用程序中的網頁內容容器。

載入網頁內容的基本例子

一旦設置好 WebView2,您可以開始將網頁加載到應用程序中。 這可以像設置源 URL 以顯示網頁一樣簡單。 這是一個基本示例,供您開始使用:

using System;
using Microsoft.Web.WebView2.WinForms; // Ensure WebView2 is included

public class WebViewExample
{
    public void LoadWebPage()
    {
        var webView = new WebView2();
        webView.Source = new Uri("https://www.ironpdf.com");
        // The URI of IronPDF's site is set as the source URL for WebView
    }
}
using System;
using Microsoft.Web.WebView2.WinForms; // Ensure WebView2 is included

public class WebViewExample
{
    public void LoadWebPage()
    {
        var webView = new WebView2();
        webView.Source = new Uri("https://www.ironpdf.com");
        // The URI of IronPDF's site is set as the source URL for WebView
    }
}
Imports System
Imports Microsoft.Web.WebView2.WinForms ' Ensure WebView2 is included

Public Class WebViewExample
	Public Sub LoadWebPage()
		Dim webView = New WebView2()
		webView.Source = New Uri("https://www.ironpdf.com")
		' The URI of IronPDF's site is set as the source URL for WebView
	End Sub
End Class
$vbLabelText   $csharpLabel

在此代碼片段中,創建一個新的 WebView2 實例,並將 IronPDF 的網站加載到其中。 這說明了如何使用 WebView2 在 C# 應用程序中渲染網頁。

Webview2 C# 示例(開發人員如何使用):圖 2 - IronPDF

嵌入基本網頁內容

在 WebView2 中顯示 HTML、CSS 和 JS

WebView2 使 C# 應用程序可以嵌入並顯示標準網頁內容。 這包括 HTML 頁面、用於樣式的級聯樣式表和用於互動性的 JavaScript。 控件功能類似於嵌入在應用程序中的網絡瀏覽器,呈現網絡內容與 Microsoft Edge 中顯示的相同。

在 WebView2 中加載網頁

WebView2 的主要功能是加載和顯示網頁。 這是通過指定 URL 或直接加載 HTML 內容來實現的。 例如:

public void NavigateWebPage()
{
    var webView = new WebView2();
    webView.CoreWebView2.Navigate("https://www.ironpdf.com");
    // Navigates to the specified URL displaying the page in the application
}
public void NavigateWebPage()
{
    var webView = new WebView2();
    webView.CoreWebView2.Navigate("https://www.ironpdf.com");
    // Navigates to the specified URL displaying the page in the application
}
Public Sub NavigateWebPage()
	Dim webView = New WebView2()
	webView.CoreWebView2.Navigate("https://www.ironpdf.com")
	' Navigates to the specified URL displaying the page in the application
End Sub
$vbLabelText   $csharpLabel

此代碼將 WebView2 控件導航至指定的網頁,並在應用程序內顯示它。

與 JavaScript 的交互

WebView2 允許在嵌入的網頁內容中與 JavaScript 進行交互。 這意味著您可以從 C# 應用程序中執行 JavaScript 代碼,反之亦然,實現動態內容更新和響應性用戶界面。

自定義網頁體驗

通過 WebView2,您可以控制網頁內容的顯示方式,並可以自定義各個方面,例如大小、可見性和用戶交互設置。 這種自定義使網頁內容無縫地集成到您應用程序的本地用戶界面中。

集成 WebView2 和 IronPDF

IronPDF 專注於將 HTML 轉換為 PDF,精確保留原始佈局和樣式。 此功能在從基於網頁的內容(如報告、發票和文檔)生成 PDF 時特別有用。 它支持將 HTML 文件、URL 甚至原始 HTML 字符串轉換為高質量的 PDF 文件。

using IronPdf;

class PdfConversionExample
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}
using IronPdf;

class PdfConversionExample
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}
Imports IronPdf

Friend Class PdfConversionExample
	Shared Sub Main(ByVal args() As String)
		Dim renderer = New ChromePdfRenderer()

		' 1. Convert HTML String to PDF
		Dim htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>"
		Dim pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent)
		pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf")

		' 2. Convert HTML File to PDF
		Dim htmlFilePath = "path_to_your_html_file.html" ' Specify the path to your HTML file
		Dim pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath)
		pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf")

		' 3. Convert URL to PDF
		Dim url = "http://ironpdf.com" ' Specify the URL
		Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
		pdfFromUrl.SaveAs("URLToPDF.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

結合使用 WebView2 和 IronPDF

在 C# 項目中結合使用 WebView2 和 IronPDF 帶來了令人興奮的可能性。 WebView2 在顯示和與網頁內容交互方面表現出色,而 IronPDF 在將這些內容轉換為 PDF 格式方面表現出色。 這種集成允許開發人員創建不僅顯示網頁內容而且提供 將網頁內容轉換為 PDF 文件 功能的應用程序。

使用 IronPDF 捕獲 WebView2 內容

創建包含 WebView2 的 Windows Forms 應用程序,使用戶可以在應用程序內瀏覽互聯網。首先在表單中添加一個 WebView2 控件。 此控件應填充表單的大部分,以提供充足的網頁瀏覽空間。 此外,增加導航控件,例如地址欄和按鈕,以獲得完整的瀏覽體驗。

增加 PDF 轉換功能

在表單上添加一個標有“轉換為 PDF”的按鈕。這個按鈕將成為用戶使用 IronPDF 轉換當前查看的網頁為 PDF 文件的觸發器。

安裝IronPDF庫

通過 NuGet 包管理器安裝

要通過 NuGet 包管理器將 IronPDF 集成到您的 WebView2 項目中,請按照以下步驟操作:

  1. 開啟 Visual Studio,並在解決方案管理器中右鍵單擊您的項目。
  2. 從彈出菜單中選擇“管理 NuGet 包…”。
  3. 轉到瀏覽選項卡並搜索 IronPDF。
  4. 在搜索結果中選擇 IronPDF 庫並單擊安裝按鈕。
  5. 接受任何許可協議提示。

如果你想通過包管理器控制台將 IronPDF 包含在你的項目中,則在包管理器控制台中執行以下命令:

Install-Package IronPdf

這會將 IronPDF 下載並安裝到您的項目中。

通過 NuGet 網站安裝

要獲取 IronPDF 的詳細概述,包括其功能、兼容性和其他下載選項,請造訪 NuGet 網站上的 IronPDF 頁面 https://www.nuget.org/packages/IronPdf

通過 DLL 安裝

或者,您可以直接使用 DLL 文件將 IronPDF 合併到您的項目中。從此DLL 下載頁面下載包含 DLL 的 ZIP 文件。 解壓縮並將 DLL 包含在您的項目中。

實現轉換邏輯

當用戶點擊“轉換為 PDF”按鈕時,您的應用程序應捕獲 WebView2 控件中顯示的 URL 或 HTML 內容。 利用 IronPDF 的功能將此 Web 內容轉換為 PDF。 這裡是一個示例方法:

  1. 捕獲當前內容:當用戶啟動轉換時,從 WebView2 控件獲取當前內容。 這可以是 URL 或直接是 HTML 內容。
  2. 使用 IronPDF 生成 PDF:利用 IronPDF,從捕獲的網頁內容創建 PDF。 ChromePdfRendererRenderUrlAsPdf 方法可以將當前網頁渲染為 PDF 文檔。
  3. 保存並通知:將生成的 PDF 保存到預定義的位置或提示用戶選擇保存位置。 PDF 保存後,通過消息框向用戶通知成功轉換。
private void ConvertToPdfButton_Click(object sender, EventArgs e)
{
    var renderer = new IronPdf.ChromePdfRenderer();
    var pdf = renderer.RenderUrlAsPdf(webView.CoreWebView2.Source.ToString());
    pdf.SaveAs("ConvertedWebPage.pdf");
    MessageBox.Show("PDF conversion successful!");
}
private void ConvertToPdfButton_Click(object sender, EventArgs e)
{
    var renderer = new IronPdf.ChromePdfRenderer();
    var pdf = renderer.RenderUrlAsPdf(webView.CoreWebView2.Source.ToString());
    pdf.SaveAs("ConvertedWebPage.pdf");
    MessageBox.Show("PDF conversion successful!");
}
Private Sub ConvertToPdfButton_Click(ByVal sender As Object, ByVal e As EventArgs)
	Dim renderer = New IronPdf.ChromePdfRenderer()
	Dim pdf = renderer.RenderUrlAsPdf(webView.CoreWebView2.Source.ToString())
	pdf.SaveAs("ConvertedWebPage.pdf")
	MessageBox.Show("PDF conversion successful!")
End Sub
$vbLabelText   $csharpLabel

下面是 UI 輸出:

Webview2 C# 示例(開發人員怎樣使用):圖 3 - 網頁到 PDF 轉換

當你點擊轉換按鈕時,它會將網頁轉換為 PDF 並顯示以下消息框:

Webview2 C# 示例(開發人員怎樣使用):圖 4 - 轉換確認

結論

Webview2 C# 示例(開發人員怎樣使用):圖 5 - 許可證

當我們總結在 C# 開發領域的 WebView2 和 IronPDF 探索時,很明顯這兩種技術的協同作用為創建動態和多用途的應用程序提供了豐富的能力。

通過集成 WebView2,您可以將先進的 Web 技術直接嵌入到您的 C# 應用程序中,增強其功能和用戶體驗。 IronPDF 提供了將這些基於 Web 的界面和內容轉換為可訪問的 PDF 文檔的工具,非常適合報告、文檔和數據共享。

透過使用 IronPDF 免費試用版,體驗 IronPDF 的全部潛力,解鎖許可證起始價為 $799 的完整功能。

常見問題解答

什麼是 WebView2,為什麼它對 C# 開發人員很重要?

WebView2 是微軟最新的網頁檢視技術,基於 Chromium 引擎。它允許 C# 開發人員將 HTML、CSS 和 JavaScript 等網頁技術嵌入到他們的應用程式中,從而實現動態內容和複雜的使用者界面。

如何將 WebView2 集成到 C# 應用程式中?

要將 WebView2 集成到 C# 應用程式中,您需要通過 NuGet 添加 WebView2 SDK。這提供了將網頁內容嵌入到您的應用程式中所需的庫,無論是 Windows Forms 還是 WPF 項目。

如何在 C# 應用程式中將 WebView2 中顯示的 HTML 內容轉換為 PDF?

您可以使用 IronPDF 將 WebView2 中顯示的 HTML 內容轉換為 PDF。從 WebView2 捕獲內容或 URL,然後使用 IronPDF 的 RenderUrlAsPdfRenderHtmlAsPdf 方法將其轉換為 PDF 文檔。

在 C# 中使用 WebView2 相較於傳統網路瀏覽技術有什麼優勢?

WebView2 的優勢包括支持現代網路標準、使用 Chromium 引擎進行可靠的渲染,以及網頁內容的無縫整合到本機應用程式中,從而提升性能和用戶體驗。

我可以在 Windows Forms 和 WPF 應用程式中使用 WebView2 嗎?

是的,WebView2 可以在 Windows Forms 和 WPF 應用程式中實施,作為這些類型的 C# 應用程式中渲染網頁內容的多功能容器。

IronPDF 如何加強使用 WebView2 的應用程式功能?

IronPDF 通過允許使用 WebView2 的應用程式將顯示的網頁內容轉換為 PDF 文檔來增強其功能。這對於像報告和直接從應用程式生成文檔等功能很有用。

使用 NuGet 安裝 IronPDF 到 C# 項目的步驟是什麼?

要使用 NuGet 安裝 IronPDF,請打開 Visual Studio,右鍵單擊您的項目,選擇“管理 NuGet 軟件包...”,搜索 IronPDF,然後點擊“安裝”。或者,使用包管理器控制台並輸入命令 Install-Package IronPdf

IronPDF 可以在 C# 應用程式中將在線 URL 轉換為 PDF 嗎?

是的,IronPDF 可以將在線 URL 轉換為 PDF 文檔。您可以使用 RenderUrlAsPdf 方法來獲取並將網址中的網頁轉換為 PDF,保留其佈局和樣式。

在 C# 中加載 WebView2 網頁內容的簡單示例是什麼?

一個簡單的示例是創建 WebView2 的新實例,將其來源設置為一個 URL,然後在您的 C# 應用程式中顯示網頁,允許嵌入的網頁內容。

開發人員如何從將 WebView2 和 IronPDF 結合在其應用程式中獲益?

通過將 WebView2 和 IronPDF 結合使用,開發人員可以創建顯示網頁內容並將其轉換為 PDF 的應用程式,增強功能如動態內容管理、報告和文檔生成。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。