歡迎光臨
每天分享高質量文章

解決 VS2019 中.net core WPF 暫時無法使用 Designer 的臨時方法

以下方法來自於微軟github開源專案WPF:

dotnet/samples – WPF Hello World sample with linked files,請放心使用。

此篇文章是上篇文章解決vs2019中暫時無法為.net core WinForms使用 Designer 的臨時方法的姊妹篇,但對WPF而言實現起來比WinForms簡單很多。核心思想還是借殼~

目前.net core下的WPF專案中的XAML視覺化設計器(Designer)尚不可用,後續的Visual Studio 2019 Update才會支援該部分的功能。不過目前我們想在vs2019中使用 Designer,有一種臨時解決方法。

可以使用Visual Studio來處理連結檔案(Link files)的功能,並將其XAML Designer用於Classic Framework (即.net Framework的WPF專案)。

具體的解決方法是在同一個 Solution下建立兩個專案:

  • 用於設計WPF應用程式的.NET Framework應用程式.net Framework 專案)
  • 用於執行WPF應用程式的.NET Core應用程式(.net core專案)

而兩個應用程式(.net core專案和相應.net Framework 專案)都將取用相同的檔案,共享一個Assenbly Name

安裝 vs 2019 professional/enterprise版本

先安裝 vs 2019 professional/enterprise版本,安裝好.net core 3.0 SDK,此時試著建立一個.net core下的 WPF應用,

設定好相關專案名和存放路徑後,會彈出:

在vs的設定裡,勾選.NET core下的”Use preview SDK”

設定完,重啟vs才能生效。

使用vs自帶的模板,選擇其中的 .net core WPF 建立Project, 取名為”CoreHiWPF”

在剛建立的Solution中使用vs自帶的模板,選擇其中的.net framework WPF新增新的project,取名為”HiWPF”

此時Solution中的檔案目錄為:

更改 .net core WPF專案 CoreHiWPF 的Assembly Name,使得兩個專案一致

右鍵點選 .net core WPF專案 CoreHiWPF,選擇最後的Properties, 然後將其Assembly Name 改為HiWPF.

接著右鍵該專案,選”Edit CoreHiWPF.csproj”。

按下圖加入如下相應程式碼:

Copy

<ItemGroup>
<ApplicationDefinition Include="..\HiWPF\App.xaml" Link="App.xaml">
<Generator>MSBuild:CompileGenerator>

ApplicationDefinition>
<Compile Include=“..\HiWPF\App.xaml.cs” Link=“App.xaml.cs” />
ItemGroup>

<ItemGroup>
<Page Include=“..\HiWPF\MainWindow.xaml” Link=“MainWindow.xaml”>
<Generator>MSBuild:CompileGenerator>
Page>
<Compile Include=“..\HiWPF\MainWindow.xaml.cs” Link=“MainWindow.xaml.cs” />
ItemGroup>

確保 .net core WPF專案 CoreHiWPF 是啟動專案

如果.net core WPF專案 CoreHiWPF 已經高亮,就不用管了。否則,需要選中專案 CoreHiWPF ,右擊後選“Set As Start up project”.

試用 XAML Designer

此時關閉所有開啟的檔案,雙擊專案`HiWPF中的MainWindow.xaml,就可以在XAML Designer中看到空白的WPF window了。

按需修改MainWindow.xaml和相應的.cs

接下來,我在MainWindow.xamlGrid中加入了兩行,一行放的是一個含有文字可換行的Label,另一行是Exit按鈕。然後在Exit按鈕上加入了Click事件,在Window上加入了Loaded事件。程式碼改完之後,F5執行,最後的介面如下:

專案程式碼已推到github,歡迎Forkstar.
傳送門: .netCore-WPF_Designer , 如果覺得自己配置起來麻煩,也可以 clone 下來自己體驗一把喔~

已同步到看一看
贊(0)

分享創造快樂