<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          .Net/.Net Core 的界面框架 NanUI 發(fā)布新版本啦!

          共 3942字,需瀏覽 8分鐘

           ·

          2020-11-06 00:14

          發(fā)布前感悟

          NanUI 自從上一次更新 NanUI 0.7 已經(jīng)過去大半年,B站和頭條的教學(xué)視頻也只制作到了第二集。

          有朋友悄悄問我是不是發(fā)生什么事故我刪庫跑路了所以那么長時間不更新項目不發(fā)布教程,當(dāng)然,這只是玩笑而已。

          實際情況是 NanUI 0.7 基于 ChormiumFX 項目進(jìn)行開發(fā),剛剛發(fā)布 0.7 之后我就發(fā)現(xiàn)了框架自生存在有重大 BUG 而且是我沒有能力處理的那種。

          本想聯(lián)系作者深入探討下這個 BUG,誰知道 ChromiumFX 的項目似乎突然中止了,截至目前位置項目首頁任然是走失狀態(tài)。

          因此我不得不考慮放棄 ChromiumFX 換一種內(nèi)核,在甄選了 CefSharp 和 CefGlue 之后,還是覺得使用更接近 CEF 原生的 CefGlue 作為底層重置 NanUI 項目,并提升版本號到 0.8,這也是第一次在大項目版本幾乎沒有小版本更新的情況下直接升級大版本。

          新版本的 NanUI 開發(fā)了大半年,踩了 CefGlue 各種坑,期間我太太還突發(fā)了非常不幸于的疾病,后來我也非常幸體驗了人生第一次住院經(jīng)歷。還好,老天留下了我倆的狗命,估計將來還另做他用吧?,所以也希望各位及家人身體健康,經(jīng)歷了這次浩劫,突然覺得人只要能好好的,健健康康活著就行,其他的都不重要。

          廢話就這么多吧,下面進(jìn)入正題。

          NanUI 簡介

          NanUI 界面組件是一個開放源代碼的 .NET / .NET Core 窗體應(yīng)用程序(WinForms)界面組件。她適用于希望使用 HTML5/CSS3 等前端技術(shù)來構(gòu)建 Windows 窗體應(yīng)用程序用戶界面的 .NET/.NET Core 開發(fā)人員。

          NanUI 的渲染引擎 WinFormium 基于谷歌可嵌入的瀏覽器框架 Chromium Embedded Framework,因此用戶可以使用各種前端技術(shù) HTML5/CSS3/JavaScript 和框架 React/Vue/Angular/Blazor 設(shè)計和開發(fā).NET 桌面應(yīng)用程序的用戶界面。

          同時,WinFormium 特有的 JavaScript Bridge 可以方便簡潔地實現(xiàn)瀏覽器端與 .NET 之間的通信和數(shù)據(jù)交換。

          使用 NanUI 界面框架將為傳統(tǒng)的 WinForm 應(yīng)用程序的用戶界面設(shè)計和開發(fā)工作帶來無限種可能!

          如果您想了解更多關(guān)于 NanUI 項目的信息,請移步NanUI 項目主頁。

          0.8 新增內(nèi)容

          內(nèi)核替換

          內(nèi)核從 ChromiumFX 替換為 CefGlue,Chromim 的版本提升到了80.0.3987.163

          承載窗體

          重寫承載窗體底層刪除了沒必要的 API 僅保留和框架有關(guān)的功能,并且拓展了無邊框窗體的能力,新增了兩種陰影效果以及一種邊框效果。

          窗體類型

          原生樣式

          系統(tǒng)原生窗體樣式與傳統(tǒng)的 WinForm 應(yīng)用程序界面一致,擁有系統(tǒng)樣式的標(biāo)題欄、邊框和系統(tǒng)命令區(qū)域,類似在傳統(tǒng)的 Form 控件上拖入 WebBrowser 控件并設(shè)置 Dock 屬性為 Fill 時的樣子一致。

          無邊框窗體

          在無邊框窗體樣式中系統(tǒng)原生的標(biāo)題欄和邊框被隱藏,可以使用整個窗體區(qū)域來繪制您的應(yīng)用程序界面。

          Kiosk 模式

          Kiosk 樣式的窗體普遍用于需要全屏展示窗體內(nèi)容的場景,例如:工控上位機界面、查詢機界面、數(shù)據(jù)大屏幕等。

          異形窗口

          使用 Layered 樣式允許創(chuàng)建異形、半透明窗體。類似各種大師、各種管家提供的加速球那種效果。

          亞克力特效窗體

          亞克力特效是 Windows 10 創(chuàng)意者更新版之后提供的新功能,它允許窗體的透明或半透明區(qū)域與桌面元素進(jìn)行模糊混合,實現(xiàn)特殊的磨砂亞克力效果。與 Layered 樣式相同,根據(jù)網(wǎng)頁中透明或者半透明區(qū)域的設(shè)置,將實現(xiàn)特定效果的磨砂玻璃效果。

          窗體特效

          陰影效果

          關(guān)閉

          泛光

          陰影

          投影

          邊框效果

          無邊框

          普通邊框

          圓角邊框

          以上示例均已提交至 GitHub 代碼倉庫,請異步https://github.com/XuanchenLin/NanUI-0.8-Examples獲取各個示例的源碼。

          離屏渲染支持

          引入了 Direct2D 技術(shù),CEF 的離屏渲染得以實現(xiàn),由此添加了兩種新的承載窗體樣式:異形樣式窗體亞克力特效窗體

          資源處理器

          新增了一種資源處理器,能夠從 ZIP 文件里加載資源。

          其他

          • 對一些 API 的寫法進(jìn)行了優(yōu)化。

          • 優(yōu)化了自定義資源控制器的抽象類,使用更簡單了。

          • 優(yōu)化了 JavaScript 擴展的抽象類,同上,麻麻在也不用擔(dān)心我不會注冊 .NET 對象到 JavaScript 的代碼了。

          使用 NanUI 0.8 創(chuàng)建一個應(yīng)用程序

          引用 NanUI 包

          使用 Visual Studio 的NuGet包管理器或者程序包管理器控制臺來獲取 NanUI 的程序集,根據(jù)項目的類型(.NET Framework 或者 .NET Core)將自動安裝合適的程序集。

          PM> Install-Package NetDimension.NanU

          安裝 NanUI 運行環(huán)境包。這個包主要包含了與CEF框架有關(guān)的文件,根據(jù)您項目架構(gòu)(AnyCPU/x86/x64)的具體情況,此 NuGet 包將在編譯時拷貝與架構(gòu)對應(yīng)的運行時文件到項目的輸出目錄中。

          PM>  Install-Package NetDimension.NanUI.Runtime

          如果您在國內(nèi) NuGet 訪問較慢無法下載NetDimension.NanUI.Runtime包時,請您加QQ群521854872在群文件中下載NuGet 離線包 。

          編碼部分

          在主窗體加載前初始化 NanUI 運行環(huán)境。

          using NetDimension.NanUI;
          class Program{static void Main() {// ... WinFormium.CreateRuntimeBuilder(env => {
          env.CustomCefSettings(settings => {// 在此處設(shè)置 CEF 的相關(guān)參數(shù) });
          env.CustomCefCommandLineArguments(commandLine => {// 在此處指定 CEF 命令行參數(shù) });
          }, app => {// 指定啟動窗體 app.UseMainWindow(context => new MainWindow()); }) .Build() .Run(); }}

          編寫窗體代碼

          using NetDimension.NanUI;using NetDimension.NanUI.HostWindow;
          class MainWindow : Formium{// 設(shè)置窗體樣式類型public override HostWindowType WindowType => HostWindowType.System;// 指定啟動 Urlpublic override string StartUrl => "https://www.formium.net";
          public MainWindow() {// 在此處設(shè)置窗口樣式 Size = new System.Drawing.Size(1024, 768); }
          protected override void OnReady() {// 在此處進(jìn)行瀏覽器相關(guān)操作
          //ShowDevTools();//ExecuteJavaScript("alert('Hello NanUI')"); }}

          沒有復(fù)雜的步驟!只需簡單操作 NanUI 項目就可以順利運行。

          項目相關(guān)

          倉庫

          以上涵蓋了本次更新的大概內(nèi)容,如果想了解更多信息,請移步 NanUI 項目倉庫首頁。

          • https://github.com/NetDimension/NanUI

          • https://gitee.com/linxuanchen/NanUI/

          目前 NanUI 0.8 版源碼暫時沒有放出,等黑測一段時間收集反饋修改后會提交至上面兩個倉庫。

          文檔

          NanUI 提供了大部分功能的文檔,使用這些文檔將有助于輕松快速的開始使用 NanUI 進(jìn)行開發(fā)。

          • NanUI 0.8 文檔?@ GitHub

          • NanUI 0.8 文檔?@ Gitee

          目前 NanUI 文檔正在逐步完善,如果有朋友愿意幫助翻譯不同語言的文檔,請與我取得聯(lián)系或者直接提交其他語言文檔的 Pull Request 即可,感激不敬!

          開源協(xié)議

          NanUI 項目基于 LGPL-3.0 開源協(xié)議開放項目源代碼。本項目版權(quán)由項目發(fā)起人、開發(fā)者林選臣所有

          依照 LGPL-3.0 協(xié)議規(guī)定:

          1. 您可以在任何商業(yè)軟件中引用 NanUI 的二進(jìn)制庫而無需支付任何與版權(quán)相關(guān)的費用;

          2. 如果您的項目使用并修改了 NanUI 的源代碼,那么您的項目也需要使用 LGPL 協(xié)議進(jìn)行開源,并且在您的衍生項目中保留 NanUI 的版權(quán)信息:Powered by NanUI

          3. 如果您需要在非開源的應(yīng)用程序中使用 NanUI 的源代碼,為了保障您的合法權(quán)益,請考慮向項目作者購買商業(yè)授權(quán)。

          關(guān)于 LGPL-3.0 協(xié)議的具體內(nèi)容請參考此協(xié)議詳細(xì)副本。此外,NanUI 項目基于諸多開源項目進(jìn)行構(gòu)建,相關(guān)的項目請查閱第三方授權(quán)協(xié)議


          瀏覽 81
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  久久久6 久久性色 | 亚洲福利一区二区三区 | 日韩国产区 | 亚洲日本播放 | 丁香五月天导航 |