NanUI实现使用HTML5/CSS3/Javascript等网页技术来开发桌面应用

NanUI基于ChromiumFX项目进行开发,它能让你在你的Winform应用程序中使用HTML5/CSS3/Javascript等网页技术来呈现用户界面

.NET GUI开发

访问GitHub主页

共1516Star

详细介绍

Welcome to NanUI

中文说明

NanUI is a library based on ChromiumFX that can let your Winform application use HTML5/CSS3 as user interface. You can use orginal Winform borders or full view no border form that use all html/css to design the interface.

NanUI is MIT licensed, so you can use it in both business and free/open source application. For more details, see the LICENSE file.

NanUI

What's new in version 0.6

  • Rewritted codes of no border interface logic, new version is faster than old versions.
  • NanUI now supports Hi-DPI in Windows 8 and later.
  • Combined HtmlUIForm and HtmlContentForm to one Formium which support these two styles.
  • Install Nuget Package of NanUI will add CEF and ChromiumFX dependencies to your application automatically.

Build NetDimension.NanUI.dll

You should use the complier which supports C# 7.0 syntax. Visual Studio 2017 is recommended.

Releases

Stable NanUI binaries are released on NuGet. Use following Nuget command to install latest version of NanUI to your Winfrom application. It will install CEF and CFX dependencies too and the dependencies will automatic copy to the bin folder.

NOTE: NanUI requires .Net Framework 4.0 as minimal support.

Nuget Package Manager

PM> Install-Package NetDimension.NanUI

Release of NetDimension.NanUI.XP

Another version of NanUI that supports Windows XP is now can be downloaded on Nuget by using following command:

PM> Install-Package NetDimension.NanUI.XP

Support for High Dpi Monitors You should add and modify Application Manifest File to enable this feature:

  1. Set DpiAware Attribute to true to enable high dpi support.
<application xmlns="urn:schemas-microsoft-com:asm.v3">
    <windowsSettings>
        <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
    </windowsSettings>
</application>
  1. If you are running in Windows 8.1, set DpiAwareness Attribute to PerMonitor to enable per monitor diffirent dpi in mulit monitors.
<application xmlns="urn:schemas-microsoft-com:asm.v3">
    <windowsSettings>
        <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
        <dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitor</dpiAwareness>
    </windowsSettings>
</application>
  1. If you are running in Windows 10 create update (or later), set DpiAwareness Attribute to PerMonitorV2 to enable per monitor diffirent dpi in mulit monitors with advanced features.
<application xmlns="urn:schemas-microsoft-com:asm.v3">
    <windowsSettings>
        <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
        <dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitorV2</dpiAwareness>
    </windowsSettings>
</application>

Download Manually

Changes

Latest change at 2019/11/15, see here to check the details.

Basic Usage

Initialize Runtime in Main

namespace TestApplication
{
    using NetDimension.NanUI;
    static class Program
    {
        [STAThread]
        static void Main(string[] args)
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            //Initalize: set CEF paths
            //If you use default structure of the FX folder, you should provide paths of fx folder, resources folder and locales folder.

            var result = Bootstrap.Load();
            
            if (result)
            {
                // Load embedded html/css resources in assembly.
                Bootstrap.RegisterAssemblyResources(System.Reflection.Assembly.GetExecutingAssembly());

                Application.Run(new Form1());

                Application.Exit();
            }

        }
    }
}

Using native Winform border style

namespace TestApplication
{
    public partial class Form1 : WinFormium

    {

        public Form1()
            //Load embedded resource index.html and not set form to no border style by the second parameter.
            : base("http://res.app.local/index.html")
        {
            InitializeComponent();
        }
    }
}

Using no border style

namespace TestApplication
{
    public partial class Form1 : Formium

    {

        public Form1()
            //Load embedded resource index.html and set form to no border style by igrone the second parameter or set it to true.
            : base("http://res.app.local/index.html")
        {
            InitializeComponent();
        }
    }
}

Documentation

WiKi

Donate

If you like my work, please buy me a cup of coffee to encourage me continue with this library.

In China you can donate me by scaning the QR code below in Alipay or WeChat app.

Screen Shot

Or you can donate me by Paypal.

DONATE

推荐源码