翻譯|使用教程|編輯:龔雪|2024-03-26 10:13:20.360|閱讀 107 次
概述:本文主要為大家介紹如何將DevExtreme JS HTML編輯器集成到WinForms應用,歡迎下載最新工具體驗!
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
在本文中我們將演示一個混合實現:如何將web UI工具集成到WinForms桌面應用程序中。具體來說,我們將把DevExtreme JavaScript WYSIWYG HTML編輯器(作為DevExtreme UI組件套件的一部分發布的組件)集成到Windows Forms應用程序中。
DevExpress技術交流群9:909157416 歡迎一起進群討論
在開始之前,首先為大家列出一些可能會遇到的問題:
注意:在WinForms桌面應用程序中使用DevExpress JavaScript HTML編輯器需要一個有效的DevExtreme授權。
官方已經創建了一個示例WinForms應用程序,它集成了基于web的HTML編輯器組件。
要開始,您必須:
1. 。
2. 在Visual Studio IDE中打開解決方案。
3. 使用 Project Converter (項目轉換器)工具更新基于您當前版本的DevExpress引用。
4. 構建解決方案并運行應用程序。
我們將客戶端HTML編輯器封裝到Microsoft Edge WebView2控件(dxhtmlleditorwebview)中,WebView2是一個可嵌入的瀏覽器控件,它允許您在為WinForms和WPF構建桌面應用程序時使用web技術,如HTML、CSS和JavaScript。
我們的示例還實現了以下內容:
我們在DXHtmlEditorWebView類中實現了以下公共方法和事件:
1. 將DXHtmlEditor復制到您的項目中。
2. 安裝Microsoft.Web.WebView2 NuGet包。
3. 打開DXHtmlEditorClient.cs文件然后在OnWebResourceRequested方法中指定默認命名空間:
void OnWebResourceRequested(object sender, CoreWebView2WebResourceRequestedEventArgs e) { var environment = webView?.Environment; if(environment == null) return; string asset = $@"{nameof(MyDefaultNamespace)}.{nameof(DXHtmlEditor)}.Assets.{e.Request.Uri.Substring(rootURIFilter.Length - 1)}"; // ... }
4. 對Assets文件夾中的所有文件設置Build Action為“Embedded Resource”。
5. 構建解決方案。
6. 將DXHtmlEditorWebView組件從工具箱中拖放到表單中。
要將HTML編輯器與“本地”用戶界面集成,您應該隱藏它的工具欄/對話框(在../Assets/index.js中),并在WinForms UI中實現相應的UI元素。在我們的例子中,隱藏了HTML編輯器的撤銷/重做工具欄命令,并在Ribbon UI中添加了相應的命令。
實現包括以下內容:
1. 在index.js中,我們添加了undo 和 redo函數:
function undo() { htmlEditor.undo(); } function redo() { htmlEditor.redo(); }
2. 在DXHtmlEditorClient.cs中,我們添加了Undo 和 Redo方法:
public async Task Undo() { await CallDxHtmlEditClient("undo()"); } public async Task Redo() { await CallDxHtmlEditClient("redo()"); }
3. 在DXHtmlWebView.cs中,我們添加了Undo 和 Redo方法:
public async Task Undo() { await EnsureIsLoaded(); await client.Undo(); } public async Task Redo() { await EnsureIsLoaded(); await client.Redo(); }
4. 我們添加了Undo 和 Redo項目到Ribbon中,并處理了它們的ItemClick事件:
async void OnUndo(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { await dxHtmlEditorWebView.Undo(); } async void OnRedo(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { await dxHtmlEditorWebView.Redo(); }
這種混合方法的主要好處是能夠在.NET桌面應用程序中利用web技術的優勢,獨家和成熟的web組件(如DevExtreme HTML編輯器)經過了廣泛的測試和改進。這些UI組件通常包含廣泛的特性集,可以處理各種使用場景。
更多DevExpress線上公開課、中文教程資訊請上中文網獲取
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都網