【Infragistics教程】用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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章