天天看點

WPF 使用 Microsoft.Toolkit.Wpf.UI.Controls 的 InkCanvas 做高性能筆迹應用

本文告訴大家如何在 WPF 中應用上 UWP 的筆迹控件,進而實作性能超級高的筆迹應用的方法

先建立一個 .NET Core 3.1 的 WPF 應用,目前的方法不支援 .NET Framework 版本。但是請安心,因為帶 UWP 控件的應用隻能在 Win10 下跑,而 Win10 是不存在 .NET Core 的環境問題的,是以采用 .NET Core 架構将會非常穩

編輯此 WPF 應用的 csproj 項目檔案,替換為如下代碼

以上的關鍵在于加上 <code>RuntimeIdentifiers</code> 屬性和 <code>Microsoft.VCRTForwarders.140</code> 的引用,如果沒有加上,那麼将會看到如下提示

接下來打開 MainWindow.xaml 檔案,添加如下代碼

此時就可以在 WPF 應用中添加 UWP 的 InkCanvas 控件了,但是預設此控件是不能寫字的。是以咱将在背景代碼的 <code>InkCanvas_Loaded</code> 設定讓筆迹控件可以在滑鼠下畫出筆迹

現在代碼看起來還不多,其實通過如上的代碼就是最簡單的方式讓 WPF 引用 UWP 的筆迹控件了。但是預設此時的應用還不能被運作,因為要用 UWP 的控件就需要做一次桌面打包,此時需要做的是再建立一個打包項目用來輔助打包。打包之後依然可以作為 Win32 的應用分發哈,不需要綁定到應用商店裡面

接下來的步驟稍微多一些,好在本文最後放了本次用到的所有的代碼,大家可以在本文最後拿到所有代碼

建立一個打包項目,接着右擊打包項目的應用程式,點選添加引用。添加剛才建立的 WPF 的引用。這裡 VisualStudio 将會自動建立啟動入口的聯系,咱隻需要點一下滑鼠即可哈

接下來是建立一個測試使用的證書,測試使用的證書用于輔助安裝 msix 安裝封包件

建立測試證書的方法是輕按兩下 Package.appxmanifest 檔案,點選打包,點選選擇證書,點選建立證書。不需要設定密碼,點選确定即可

這樣就相當于完全完成了一個最簡單的應用了,我推薦大家先完成這個最簡單的應用,然後再繼續添加自己的功能哈

設定打包應用作為 VisualStudio 啟動項目,接着按下 F5 即可執行。更多請看 VisualStudio 快速設定啟動項目

如果期望在伺服器做自動打包,可以在指令行,進入打包應用的 csproj 所在檔案夾,輸入下面指令即可自動建構

通過以上指令即可建構出 Debug 版本的 msix 包,預設将會打包應用的 AppPackages 檔案夾裡面。如果需要建構出釋出版本的 release 版本的安裝包,請使用以下指令,更多請看 MSBuild 常用參數

預設輸出的是 msix 包,而因為咱的證書是自己建立的測試證書,是以需要用上 Install.ps1 進行安裝。更多請參閱旁加載安裝部分的内容

如果做分發此應用的話,推薦使用 加強版在國内分發 UWP 應用正确方式 通過win32安裝UWP應用 的方法進行分發,此時就不需要讓使用者去關注證書問題

以上的代碼放在 github 和 gitee 歡迎通路

可以通過如下方式擷取本文的源代碼,先建立一個空檔案夾,接着使用指令行 cd 指令進入此空檔案夾,在指令行裡面輸入以下代碼,即可擷取到本文的代碼

以上使用的是 gitee 的源,如果 gitee 不能通路,請替換為 github 的源

擷取代碼之後,進入 LaykearduchuNachairgurharhear 檔案夾

如果不想走 UWP 安裝包,也可以放在 WPF 應用程式上,請看 WPF 引用 UWP 控件 不打包為 MSIX 分發的方法

WPF 使用 Microsoft.Toolkit.Wpf.UI.Controls 的 InkCanvas 做高性能筆迹應用

本作品采用知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協定進行許可。歡迎轉載、使用、重新釋出,但務必保留文章署名林德熙不得用于商業目的,基于本文修改後的作品務必以相同的許可釋出。如有任何疑問,請與我