WPF(Windows Presentation Foundation)是微軟推出的基於Windows 的使用者介面框架,屬於.NET Framework 3.0的一部分。它提供了統一的程式設計模型、語言和框架,真正做到了分離介面設計人員與開發人員的工作;同時它提供了全新的多媒體互動使用者圖形介面。

微軟提供的WPF控制元件的功能很強大,但是樣式不漂亮,需要專業的美工設計樣式或面板。圈子裡總有無私奉獻的大牛們分享既漂亮又好用的WPF元件庫,下面收集了幾款非常優秀的WPF開源元件。

開源專案是眾多組織與個人分享的元件或專案,作者付出的心血我們是無法體會的,所以首先大家要心存感激、尊重。請嚴格遵守每個專案的開源協議後再使用。尊重智慧財產權,共建和諧開源社群。

1、Fluent.Ribbon

  Fluent/Ribbon是微軟在其最新桌面作業系統Windows 7中使用的圖形使用者介面。 Windows平臺的進化,伴隨著系統圖形介面的重新設計。從Windows XP到Windows Vista,最大的革新就是Windows Aero的引入。在Windows 7 中,Aero被保留下來。 但是,在未來,Windows 7的圖形使用者介面將朝著Office 2007相同的方向,名稱為Fluent/Ribbon。  

  Fluent.Ribbon是一個實現了類似Office使用者介面的WPF元件。它提供諸如RibbonTabControl、Backstage、Gallery、QuickAccessToolbar、ScreenTip等控制元件。

  • 開發環境要求

    • Visual Studio 2019 (16.6)或更高版本。
    • .NET Core  v3.1.300 或更高版本的SDK。
2、AvalonDock

AvalonDock是一個WPF文件和工具窗口布局容器,用於以與許多知名IDE(如Eclipse、Visual Studio、PhotoShop等)類似的方式排列文件和工具視窗。

3、AvalonEdit

AvalonEdit是基於WPF的可擴充套件的文字編輯器。它是SharpDevelop 4.x“Mirador”及更高版本中基於WPF的文字編輯器的名稱。它也被用於ILSpy和許多其他專案。

  • GitHub:https://github.com/icsharpcode/AvalonEdit
4、AvaloniaUI

Avalonia是一個基於XAML的跨平臺UI框架,提供靈活的樣式系統,並支援多種作業系統,如通過.NET framework和.NET Core的Windows、通過Xorg的Linux、macOS。Avalonia已準備好進行通用桌面應用程式開發。該專案目前並不成熟,可能會有一些bug。

(1)AvalonStudio

  AvalonStudio 是一種可擴充套件的跨平臺IDE,用於嵌入式C/C++、.NET核心、Avalina和Typescript。

(2)AvaloniaILSpy

GitHub: https://github.com/icsharpcode/AvaloniaILSpy

5、Extended WPF Toolkit

Xceed出品的WPF擴充套件工具包是建立下一代Windows應用程式的WPF控制元件、元件和實用程式的首選集合。使用它來構建外觀專業、現代且易於使用的WPF應用程式。它已經在這裡、Codeplex和NuGet上下載了100多萬次。

包含以下控制元件

Plus版本中的其他控制元件和功能

WPF業務套件中的其他控制元件和功能

  • GitHub:https://github.com/xceedsoftware/wpftoolkit
6、CefSharp 

  CefSharp是一種將功能齊全的符合標準的web瀏覽器嵌入C#或VB.NET應用程式的簡單方法。CefSharp擁有WinForms和WPF應用程式的瀏覽器控制元件,以及自動化專案的OffScreen版本。CefSharp基於Chromium Embedded Framework,這是Google Chrome的開源版本。

  CefSharp採用現代網路標準,支援HTML5、JavaScript、CSS3和HTML5音訊/視訊元素。通過WebGL支援3D內容,WebGL使用OpenGL/DirectX進行硬體加速渲染。CefSharp包括用於PDF、網頁列印和WebKit Inspector(開發工具)的嵌入式模組。CefSharp沒有外部依賴項,完整版本的CefSharp只會為您的應用程式增加約80MB的記憶體。

  • 整合功能

    • 可以通過程式設計方式執行Javascript,向Javascript公開.Net類,並在Javascript事件觸發時接收回調。
    • 可以通過程式設計方式呼叫DevTools方法
    • 可以使用CefSharp顯示使用HTML5構建的嵌入式UI,或者顯示遠端web內容和web應用程式。
  • 官網:http://cefsharp.github.io
  • GitHub:https://github.com/cefsharp/CefSharp
  • 示例:https://github.com/cefsharp/CefSharp/tree/master/CefSharp.Wpf.Example