以下方法來自於微軟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”。
按下圖加入如下相應程式碼:
<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.xaml
的Grid
中加入了兩行,一行放的是一個含有文字可換行的Label
,另一行是Exit
按鈕。然後在Exit按鈕上加入了Click
事件,在Window
上加入了Loaded
事件。程式碼改完之後,F5
執行,最後的介面如下:
專案程式碼已推到github
,歡迎Fork
和star
.
傳送門: .netCore-WPF_Designer , 如果覺得自己配置起來麻煩,也可以 clone 下來自己體驗一把喔~
朋友會在“發現-看一看”看到你“在看”的內容