1. 程式人生 > >【Infragistics教程】用Infragistics Ultimate UI for WPF 構建.NET Core 3 Apps

【Infragistics教程】用Infragistics Ultimate UI for WPF 構建.NET Core 3 Apps

【下載Infragistics Ultimate最新版本】

將WPF應用程式轉換為 .NET Core 3 

用 .NET Core 3 建立.NET Core WPF應用程式的第一步是安裝 .NET Core 3 。

  • 首先安裝 .NET Core執行時和主機安裝程式(如果尚未安裝):https://github.com/dotnet/core-setup
  • 接下來,您將要安裝最新的.NET Core 3 SDK(在master 3.0.x執行時標題下選擇平臺的安裝程式):https://github.com/dotnet/core-sdk

開啟Visual Studio 2017,建立一個新的WPF應用程式,並將其命名為MyFirstCore3App。

Infragistics

當專案載入時,通過右鍵單擊專案並選擇“Unload Project”解除安裝專案。解除安裝專案後,再次右鍵單擊該專案並選擇“Edit myFirstCore3app.csproj”。

Infragistics

通過選擇所有文字(ctrl+a)並刪除,刪除csproj檔案中的所有內容。現在,讓我們新增新的SDK樣式XML標記,並將專案轉換為.NET Core3專案格式。

Infragistics

重要事項:特別注意第10行。應用程式中的每個XAML檔案都必須以頁面形式手動新增到csproj檔案中。否則,您將得到一個編譯錯誤。

現在,讓我們通過右鍵單擊專案並選擇“Reload Project”來重新載入專案。載入專案後,刪除properties資料夾和app.config檔案。您的專案應該如下所示:

Infragistics

請注意,“xaml.cs”檔案不再巢狀在其父級的下面。這是工具中的已知問題,將在.NET Core 3準備好進行RTM時解決。

請隨意構建和執行該應用程式,以檢視您的.NET Core 3 WPF應用程式正在執行。現在窗戶是空的,但我們會修復的。

Infragistics

新增Infragistics Ultimate UI for WPF

現在您的.NET Core 3 WPF應用程式已經啟動並執行,讓我們為它新增一個用於WPF控制元件的基礎設施最終使用者介面。我們將保持簡單,只新增XamBusyIndicator。讓我們使用nuget包管理器(右鍵單擊專案並選擇管理nuget包)將infraslogics.wpf nuget包新增到我們的專案中,或者在csproj檔案中手動鍵入該包(右鍵單擊專案並選擇編輯myfirstcore3app.csproj)。我會手動新增,因為這樣做很容易。

Infragistics

現在,我們更新mainwindow.xaml以新增XamBusyIndicator控制元件的例項。很直接。新增一個名空間“xmlns:ig=”http://schemas.infragistics.com/xaml“,然後按如下方式定義控制元件。

Infragistics

您會馬上注意到您沒有設計器支援,並且您的XAML檔案中到處都有藍色波形。這是意料之中的,因為.NET Core 3還沒有任何設計器支援。

在XamBusyIndicator控制元件上設定一些屬性,然後單擊F5執行該應用程式。

Infragistics

我們沒有針對.NET Core 3的任何特殊版本。目前,可以在.NET Core 3應用程式中使用.NET 4.5控制元件。因此,這意味著,您仍然可以在.NET Core3應用程式中使用現有的基礎設施終極UI來實現WPF控制元件,而不需要進行任何實際更改。但是,您可能會遇到一些問題,將在下一步討論。

已知問題

由於.NET Core 3處於非常早的預覽狀態,這意味著很多事情無法按您的要求進行。雖然Microsoft.NET核心團隊正在努力解決這些問題,但您一定會時不時地發現gremlins。

您將遇到的最大和最常見的問題是以下生成錯誤:

Error MC1000: Unknown build error, 'Inheritance security rules violated by type: [Control Name]. Derived types must either match the security accessibility of the base type or be less accessible.

如果遇到此錯誤,thi必須在程式碼隱藏中定義控制元件,並在執行時將其新增到視覺化樹中。

讓我們以XamDiagram控制元件為例:

新增對“infragistics.wpf.diagram”nuget包的引用,然後更新mainpage.xaml,使其看起來像這樣。

Infragistics

現在嘗試構建應用程式。例外!!!!!

Infragistics

若要解決此問題,請在程式碼隱藏(mainwindow.xaml.cs)中使用簡單的ump,並在程式碼中建立xamdiagram控制元件,然後將其新增到grid.children集合中。讓我們通過給網格命名來稍微修改一下XAML,這樣我們就可以在後面的程式碼中訪問它,並新增一些列,這樣我們也可以為圖表控制元件放入工具箱。

Infragistics

現在,跳到後面的程式碼,新增一個新的工具箱和XamDiagram控制元件。

Infragistics

執行應用程式,現在它按預期工作。

Infragistics