翻譯|使用教程|編輯:龔雪|2024-03-26 10:13:20.360|閱讀 107 次
概述:本文主要為大家介紹如何將DevExtreme JS HTML編輯器集成到WinForms應(yīng)用,歡迎下載最新工具體驗(yàn)!
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
在本文中我們將演示一個(gè)混合實(shí)現(xiàn):如何將web UI工具集成到WinForms桌面應(yīng)用程序中。具體來(lái)說(shuō),我們將把DevExtreme JavaScript WYSIWYG HTML編輯器(作為DevExtreme UI組件套件的一部分發(fā)布的組件)集成到Windows Forms應(yīng)用程序中。
DevExpress技術(shù)交流群9:909157416 歡迎一起進(jìn)群討論
在開(kāi)始之前,首先為大家列出一些可能會(huì)遇到的問(wèn)題:
注意:在WinForms桌面應(yīng)用程序中使用DevExpress JavaScript HTML編輯器需要一個(gè)有效的DevExtreme授權(quán)。
官方已經(jīng)創(chuàng)建了一個(gè)示例WinForms應(yīng)用程序,它集成了基于web的HTML編輯器組件。
要開(kāi)始,您必須:
1. 。
2. 在Visual Studio IDE中打開(kāi)解決方案。
3. 使用 Project Converter (項(xiàng)目轉(zhuǎn)換器)工具更新基于您當(dāng)前版本的DevExpress引用。
4. 構(gòu)建解決方案并運(yùn)行應(yīng)用程序。
我們將客戶端HTML編輯器封裝到Microsoft Edge WebView2控件(dxhtmlleditorwebview)中,WebView2是一個(gè)可嵌入的瀏覽器控件,它允許您在為WinForms和WPF構(gòu)建桌面應(yīng)用程序時(shí)使用web技術(shù),如HTML、CSS和JavaScript。
我們的示例還實(shí)現(xiàn)了以下內(nèi)容:
我們?cè)贒XHtmlEditorWebView類中實(shí)現(xiàn)了以下公共方法和事件:
1. 將DXHtmlEditor復(fù)制到您的項(xiàng)目中。
2. 安裝Microsoft.Web.WebView2 NuGet包。
3. 打開(kāi)DXHtmlEditorClient.cs文件然后在OnWebResourceRequested方法中指定默認(rèn)命名空間:
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. 對(duì)Assets文件夾中的所有文件設(shè)置Build Action為“Embedded Resource”。
5. 構(gòu)建解決方案。
6. 將DXHtmlEditorWebView組件從工具箱中拖放到表單中。
要將HTML編輯器與“本地”用戶界面集成,您應(yīng)該隱藏它的工具欄/對(duì)話框(在../Assets/index.js中),并在WinForms UI中實(shí)現(xiàn)相應(yīng)的UI元素。在我們的例子中,隱藏了HTML編輯器的撤銷/重做工具欄命令,并在Ribbon UI中添加了相應(yīng)的命令。
實(shí)現(xiàn)包括以下內(nèi)容:
1. 在index.js中,我們添加了undo 和 redo函數(shù):
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項(xiàng)目到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桌面應(yīng)用程序中利用web技術(shù)的優(yōu)勢(shì),獨(dú)家和成熟的web組件(如DevExtreme HTML編輯器)經(jīng)過(guò)了廣泛的測(cè)試和改進(jìn)。這些UI組件通常包含廣泛的特性集,可以處理各種使用場(chǎng)景。
更多DevExpress線上公開(kāi)課、中文教程資訊請(qǐng)上中文網(wǎng)獲取
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:慧都網(wǎng)