.NET幫助 Cefsharp.WPF.NET Core(開發者的工作原理) Jacob Mellor 更新:2026年1月18日 下載 IronPDF NuGet 下載 DLL 下載 Windows Installer 開始免費試用 LLM副本 LLM副本 將頁面複製為 Markdown 格式,用於 LLMs 在 ChatGPT 中打開 請向 ChatGPT 諮詢此頁面 在雙子座打開 請向 Gemini 詢問此頁面 在 Grok 中打開 向 Grok 詢問此頁面 打開困惑 向 Perplexity 詢問有關此頁面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 複製連結 電子郵件文章 開發人員現在可以輕鬆地將Chromium強大的網頁瀏覽器引擎整合到他們的.NET桌面應用程式和WPF應用程式中,這得益於CefSharp - 一個創新的圍繞Chromium嵌入式框架的.NET包裝器。 CefSharp使.NET應用程式開發者可以在自訂桌面介面中提供豐富的網頁體驗,讓他們無需任何外部依賴即可利用Chromium的網頁功能和開發者工具。 有了其多樣的新功能,如自訂選項和瀏覽器行為控制,這個框架讓整合當代網頁技術如HTML5、CSS3和JavaScript變得更容易。 CefSharp的跨平台互操作性和網頁內容互作用能力改變了用戶對桌面解決方案中基於網頁內容的互動和體驗,它提升了桌面程式並使動態網頁瀏覽體驗直接在應用程式環境中得以實現。 在這篇文章中,我們將看到更多關於CefSharp的開源版本的代碼片段。 如何使用CefSharp 從Visual Studio專案中創建一個新的Windows表單。 安裝CefSharp庫。 聲明CefSharp所需的對象,它準備至少可以編譯。 輸入需要加載的URL。 執行代碼。 安裝CefSharp.WinForms: 使用Visual Studio的NuGet包管理器是安裝CefSharp的最簡單方法。 在Visual Studio中啟動專案。 在解決方案管理器中,右鍵點擊您的專案。 選擇"管理NuGet包"。 去"瀏覽"標籤並搜尋"CefSharp"。 選擇適合您專案的CefSharp套件(CefSharp.Wpf, CefSharp.WinForms等)。 要將套件包含到您的專案中,點擊"安裝"。 CefSharp的重要性 CefSharp是一個框架,它通過將Chromium的網頁瀏覽器引擎無縫整合到.NET應用程式中,改變了開發人員構建桌面應用程序和自動化項目的方式。 借助CefSharp,我們可以顯示遠程網頁內容,包括支持HTML5的嵌入式UI。 在CefSharp介紹中需要強調的重要事項是: Chromium嵌入式框架(CEF)作為CefSharp的框架,允許將Chromium瀏覽器的功能整合到其他程式中。 通過使用Google的Chromium專案,CefSharp增強了桌面程式的高級網頁功能。 .NET整合:CefSharp是Cef的強大.NET包裝器。 它使程式員能夠輕鬆地使用C#或其他.NET語言將快速的網頁瀏覽器整合到他們的桌面.NET應用程式中。 桌面應用中的網頁瀏覽:有了CefSharp,開發人員可以輕鬆地將瀏覽功能整合到他們的桌面程序中。 此功能為開發人員創造了無限的可能性,允許他們將在線材料整合到其用戶界面中或製作具有網絡功能的獨特桌面應用程式。 它可以在JavaScript事件觸發時接收回調。 豐富的網頁技術支持:通過使用CefSharp,開發人員可以利用Chromium提供的所有功能,包括支持最新的網絡標準,如HTML5、CSS3、JavaScript、WebGL和其他現代網絡標準。 這使得在桌面程式中包含尖端的網頁技術成為可能。 靈活性和自訂:CefSharp給開發人員提供了極大的靈活性和自訂可能性,使他們能夠處理事件、執行JavaScript、與網上內容互動和修改瀏覽器行為以滿足特定應用程式的需要。 CefSharp與WebGL,利用OpenGL/DirectX進行硬體加速渲染,支持3D內容。 通過使用CefSharp,開發人員可以改善桌面應用程式,促進網頁瀏覽體驗,鼓勵用戶互動,並在應用程式環境內為用戶提供豐富而現代化的信息。 示例代碼: using System; using System.Windows.Forms; using CefSharp; using CefSharp.WinForms; namespace CefSharpExample { public partial class MainForm : Form { private ChromiumWebBrowser chromeBrowser; public MainForm() { InitializeComponent(); // Initialize CefSharp settings CefSettings settings = new CefSettings(); Cef.Initialize(settings); // Create the ChromiumWebBrowser instance chromeBrowser = new ChromiumWebBrowser("https://ironpdf.com/"); // Load a URL // Add the ChromiumWebBrowser control to the form this.Controls.Add(chromeBrowser); chromeBrowser.Dock = DockStyle.Fill; // Fill the entire form // Handle when the browser component has finished loading chromeBrowser.LoadingStateChanged += ChromeBrowser_LoadingStateChanged; } private void ChromeBrowser_LoadingStateChanged(object sender, LoadingStateChangedEventArgs e) { if (!e.IsLoading) { // Page has finished loading // Perform actions after the page has loaded Console.WriteLine("Finished loading."); } } // Dispose of Cef resources when the form is closed private void MainForm_FormClosing(object sender, FormClosingEventArgs e) { Cef.Shutdown(); } } } using System; using System.Windows.Forms; using CefSharp; using CefSharp.WinForms; namespace CefSharpExample { public partial class MainForm : Form { private ChromiumWebBrowser chromeBrowser; public MainForm() { InitializeComponent(); // Initialize CefSharp settings CefSettings settings = new CefSettings(); Cef.Initialize(settings); // Create the ChromiumWebBrowser instance chromeBrowser = new ChromiumWebBrowser("https://ironpdf.com/"); // Load a URL // Add the ChromiumWebBrowser control to the form this.Controls.Add(chromeBrowser); chromeBrowser.Dock = DockStyle.Fill; // Fill the entire form // Handle when the browser component has finished loading chromeBrowser.LoadingStateChanged += ChromeBrowser_LoadingStateChanged; } private void ChromeBrowser_LoadingStateChanged(object sender, LoadingStateChangedEventArgs e) { if (!e.IsLoading) { // Page has finished loading // Perform actions after the page has loaded Console.WriteLine("Finished loading."); } } // Dispose of Cef resources when the form is closed private void MainForm_FormClosing(object sender, FormClosingEventArgs e) { Cef.Shutdown(); } } } $vbLabelText $csharpLabel 這段代碼使用CefSharp開發了一個基於Chromium的嵌入式網頁瀏覽器簡單的WinForms應用程式。 以下是解釋: 使用CefSettings初始化CefSharp設置。 ChromiumWebBrowser:該類表示由CefSharp提供的網頁瀏覽器控件。 LoadingStateChanged事件處理瀏覽器的加載狀態變化,例如,當頁面加載完成時。 MainForm_FormClosing事件確保在表單關閉時適當關閉Cef資源。 對於使用CefSharp構建準備編譯的基本示例應用程序,請參見GitHub上的Minimal Example Project。 更複雜的示例專案可在專案的源代碼中找到。 CefSharp與IronPDF 將IronPDF的PDF生成能力與CefSharp的Chromium嵌入式框架(CEF)瀏覽器整合,需要在.NET應用程式中同時使用CefSharp和IronPDF。 然而,截至2022年1月的最新版本,CefSharp和IronPDF之間並沒有直接的現成接口。 CefSharp的主要目標是將Chromium網頁瀏覽器引擎整合到.NET程序中,允許通過應用程式的用戶界面顯示和操作在線內容。 CefSharp為WPF和Windows Forms應用程式提供瀏覽器控件。 儘管CefSharp和IronPDF沒有直接整合,開發人員仍然可以在同一應用程式環境中使用這兩個庫。 IronPDF在HTML到PDF轉換中表現出色,確保原始佈局和樣式的精確保持。 它非常適合從基於網頁的內容(如報告、發票和文件)創建PDF。 支持HTML文件、URL和原始HTML字符串,IronPDF快速生成高品質的PDF文件。 using IronPdf; class Program { 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 Program { 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"); } } $vbLabelText $csharpLabel 安裝IronPDF 要獲得IronPDF庫,您需要按照即將到來的步驟進行。 在包管理器中輸入以下代碼: Install-Package IronPdf dotnet add package IronPdf Install-Package IronPdf dotnet add package IronPdf SHELL 或者,您可以使用NuGet包管理器搜尋包" IronPDF "。 從與IronPDF相關的所有NuGet包中,選擇並下載必要的包。 Using IronPDF in CefSharp C# 要在C#應用程序中將IronPDF與CefSharp整合,您需要執行兩個步驟:利用CefSharp提供的基於Chromium的瀏覽器來渲染HTML內容,然後使用IronPDF將該HTML信息轉換成PDF文件。 以下例子展示了如何完成這一集成: using CefSharp; using IronPdf; using System; using System.Threading.Tasks; using System.Windows.Forms; namespace CefSharpIronPdfIntegration { public partial class MainForm : Form { private ChromiumWebBrowser chromeBrowser; public MainForm() { InitializeComponent(); // Initialize CefSharp CefSettings settings = new CefSettings(); Cef.Initialize(settings); // Create the ChromiumWebBrowser instance chromeBrowser = new ChromiumWebBrowser("https://ironpdf.com/"); // Load a URL // Add the ChromiumWebBrowser control to the form this.Controls.Add(chromeBrowser); chromeBrowser.Dock = DockStyle.Fill; // Fill the entire form // Handle when the browser component has finished loading chromeBrowser.LoadingStateChanged += ChromeBrowser_LoadingStateChanged; } private async void ChromeBrowser_LoadingStateChanged(object sender, LoadingStateChangedEventArgs e) { if (!e.IsLoading) { // Page has finished loading // Capture HTML content after page load completes string htmlContent = await chromeBrowser.GetSourceAsync(); // Use IronPDF to generate a PDF from the captured HTML content var Renderer = new IronPdf.HtmlToPdf(); var PDF = Renderer.RenderHtmlAsPdf(htmlContent); PDF.SaveAs("Output.pdf"); // Save the generated PDF Console.WriteLine("PDF generated successfully."); } } // Dispose of Cef resources when the form is closed to avoid unnecessary memory usage private void MainForm_FormClosing(object sender, FormClosingEventArgs e) { Cef.Shutdown(); } } } using CefSharp; using IronPdf; using System; using System.Threading.Tasks; using System.Windows.Forms; namespace CefSharpIronPdfIntegration { public partial class MainForm : Form { private ChromiumWebBrowser chromeBrowser; public MainForm() { InitializeComponent(); // Initialize CefSharp CefSettings settings = new CefSettings(); Cef.Initialize(settings); // Create the ChromiumWebBrowser instance chromeBrowser = new ChromiumWebBrowser("https://ironpdf.com/"); // Load a URL // Add the ChromiumWebBrowser control to the form this.Controls.Add(chromeBrowser); chromeBrowser.Dock = DockStyle.Fill; // Fill the entire form // Handle when the browser component has finished loading chromeBrowser.LoadingStateChanged += ChromeBrowser_LoadingStateChanged; } private async void ChromeBrowser_LoadingStateChanged(object sender, LoadingStateChangedEventArgs e) { if (!e.IsLoading) { // Page has finished loading // Capture HTML content after page load completes string htmlContent = await chromeBrowser.GetSourceAsync(); // Use IronPDF to generate a PDF from the captured HTML content var Renderer = new IronPdf.HtmlToPdf(); var PDF = Renderer.RenderHtmlAsPdf(htmlContent); PDF.SaveAs("Output.pdf"); // Save the generated PDF Console.WriteLine("PDF generated successfully."); } } // Dispose of Cef resources when the form is closed to avoid unnecessary memory usage private void MainForm_FormClosing(object sender, FormClosingEventArgs e) { Cef.Shutdown(); } } } $vbLabelText $csharpLabel 這段代碼展示了一個簡單的集成方式,其中就攔截了載入在Chromium瀏覽器中的HTML內容,並使用IronPDF將其轉換成PDF文件。 以下是說明: 初始化CefSharp以將Chromium瀏覽器整合到Windows Forms應用程序中。 ChromiumWebBrowser 控制項:此控制項將特定的URL(在本例中為"https://ironpdf.com/")加載到瀏覽器中並創建實例。 LoadingStateChanged 事件:跟踪瀏覽器的加載進度。 當頁面加載完成時(e.IsLoading 為false),ChromeBrowser使用GetSourceAsync()非同步捕獲已加載頁面的HTML內容。 IronPDF集成:捕獲的HTML內容(htmlContent)使用IronPDF的HtmlToPdf功能轉換成PDF文件。 生成的PDF保存為"Output.pdf"。 表單關閉:在表單關閉後調用Cef.Shutdown()以確保Cef資源被適當關閉。 這段代碼展現了一個簡單的集成,其中攔截了載入在Chromium瀏覽器中的HTML內容,然後使用IronPDF將其轉換成PDF文件。 根據您的應用程序的具體需求自訂URL、錯誤處理和其他方面。 有關IronPDF文檔的更多信息,請參閱IronPDF NuGet Package。 結論 在C#應用程序中整合IronPDF與CefSharp為管理文件和網上信息開創了新的可能性。 通過將IronPDF的PDF生成功能與CefSharp提供的基於Chromium的瀏覽器相結合,開發人員可以創建靈活的應用程序,能夠在整合動態網頁內容的同時生成高品質的PDF文件。 IronPDF的Lite套件可用於$799,並包括一年的軟體維護合同、升級選項、永久授權和三十天的退款保證。 在三十天試用期間,用戶可以在實際場景中評估產品功能,試用版本會有浮水印。 要了解更多關於IronPDF的成本、授權和免費版本,請訪問<IronPDF授權信息網站。 有關Iron Software的更多資訊,請訪問他們的Iron Software網站。 常見問題解答 如何將以 Chromium 為基礎的網頁瀏覽器整合到我的 .NET 桌面應用程式中? 您可以使用 CefSharp, 一個 Chromium 嵌入框架的 .NET 包裝器, 將以 Chromium 為基礎的網頁瀏覽器輕鬆整合到您的 .NET 桌面應用程式中。這使您能夠利用現代網頁技術,例如 HTML5、CSS3 和 JavaScript。 在 WPF 應用程式中設定 CefSharp 的步驟有哪些? 要在 WPF 應用程式中設定 CefSharp,首先在 Visual Studio 中建立一個新專案。使用 NuGet 套件管理員安裝 CefSharp.Wpf 套件,然後配置必要的設定以將 Chromium 瀏覽器嵌入到您的應用程式中。 如何將在 Chromium 瀏覽器中渲染的 HTML 內容轉換為 PDF 文件? 要將在 Chromium 瀏覽器中渲染的 HTML 內容轉換為 PDF,您可以先使用 CefSharp 渲染 HTML,然後使用 IronPDF 的 HtmlToPdf 函數生成 PDF 文件。 CefSharp 能否與 .NET 應用程式中的 PDF 生成工具一起使用? 是的,CefSharp 可以與像 IronPDF 這樣的 PDF 生成工具一起在 .NET 應用程式中使用。雖然沒有直接的整合,您可以利用兩者來渲染 HTML 內容並將其轉換為 PDF。 將 CefSharp 整合到 .NET 應用程式中的好處是什麼? 將 CefSharp 整合到 .NET 應用程式中提供的好處包括能夠在桌面應用程式中直接顯示和互動現代網頁內容。它還允許開發人員自訂瀏覽器行為並使用網頁技術如 HTML5、CSS3 和 JavaScript。 在將 CefSharp 與 .NET 應用程式整合時如何進行故障排除? 要進行 CefSharp 整合的故障排除,請確保所有 NuGet 包已正確安裝,檢查與您的 .NET 版本的相容性,並在 Visual Studio 專案中驗證配置設置。 在 .NET 應用程式中是否可以自訂 Chromium 瀏覽器的行為? 是的,CefSharp 允許開發人員自定義整合到 .NET 應用中的 Chromium 瀏覽器的行為,提供對瀏覽器設置的控制權,並能夠使用自定義代碼擴展功能。 什麼樣的項目從同時使用 CefSharp 和 IronPDF 中受益? 需要直接從動态網頁內容生成 PDF 报告或文檔的項目受益于同時使用 CefSharp 和 IronPDF。这种组合非常適合需要強大文檔管理和網頁內容渲染功能的應用程序。 Jacob Mellor 立即與工程團隊聊天 首席技術官 Jacob Mellor是Iron Software的首席技術官,也是開創C# PDF技術的前瞻性工程師。作為Iron Software核心代碼庫的原始開發者,他自公司成立以來就塑造了公司的產品架構,並與CEO Cameron Rimington將公司轉型為服務NASA、Tesla以及全球政府機構的50多人公司。Jacob擁有曼徹斯特大學土木工程一級榮譽學士學位(1998年–2001年)。他於1999年在倫敦開立首家軟體公司,並於2005年建立了他的第一個.NET組件,專注於解決Microsoft生態系統中的複雜問題。他的旗艦作品IronPDF和Iron Suite .NET程式庫全球已獲得超過3000萬次NuGet安裝,他的基礎代碼不斷在全球各地驅動開發者工具。擁有25年以上的商業經驗和41年的編碼專業知識,Jacob仍然專注於推動企業級C#、Java和Python PDF技術的創新,同時指導下一代技術領導者。 相關文章 更新2026年2月20日 銜接 CLI 簡化與 .NET : 使用 Curl DotNet 與 IronPDF for .NET Jacob Mellor 藉由 CurlDotNet 彌補了這方面的不足,CurlDotNet 是為了讓 .NET 生態系統能熟悉 cURL 而建立的函式庫。 閱讀更多 更新2025年12月20日 RandomNumberGenerator C# 使用RandomNumberGenerator C#類可以幫助將您的PDF生成和編輯項目提升至新水準 閱讀更多 更新2025年12月20日 C#字符串等於(它如何對開發者起作用) 當結合使用強大的PDF庫IronPDF時,開關模式匹配可以讓您構建更智能、更清晰的邏輯來進行文檔處理 閱讀更多 Npgsql C# .NET(對於開發者的運行原理)Microsoft Logging C#(開發者的...
更新2026年2月20日 銜接 CLI 簡化與 .NET : 使用 Curl DotNet 與 IronPDF for .NET Jacob Mellor 藉由 CurlDotNet 彌補了這方面的不足,CurlDotNet 是為了讓 .NET 生態系統能熟悉 cURL 而建立的函式庫。 閱讀更多