解決VS2019中.net core WPF暫時無法使用Designer的臨時方法
文章目錄
- 解決VS2019中.net core WPF暫時無法使用Designer的臨時方法
- 安裝 vs 2019 professional/enterprise版本
- 在vs的設置裏,勾選.NET core下的"Use preview SDK"
- 使用vs自帶的模板,選擇其中的 .net core WPF 創建Project, 取名爲"CoreHiWPF"
- 在剛創建的Solution中使用vs自帶的模板,選擇其中的.net framework WPF添加新的project,取名爲"HiWPF"
- 更改 .net core WPF項目 CoreHiWPF 的Assembly Name,使得兩個項目一致
- 確保 .net core WPF項目 CoreHiWPF 是啓動項目
- 試用 XAML Designer
- 按需修改MainWindow.xaml和相應的.cs
以下方法來自於微軟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 項目)都將引用相同的文件,共享一個Assembly Name
。
安裝 vs 2019 professional/enterprise版本
先安裝 vs 2019 professional/enterprise版本,安裝好.net core 3.0 SDK,此時試着創建一個.net core下的 WPF應用,
設置好相關項目名和存放路徑後,會彈出:
下一步驟,勾選.NET core下的"Use preview SDK"
會解決這個問題。
當然也可使用命令行/Powershell來創建。
- 打開命令行/Powershell
- 使用cd命令,切換到自己平時存vs項目的路徑(比如我切換到
D:\Coding
) - 輸入命令
dotnet new wpf -n "CoreHiWPF"
在vs的設置裏,勾選.NET core下的"Use preview SDK"
設置完,重啓vs才能生效。
此時用vs打開剛纔的Solution
即可。
使用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:Compile</Generator>
</ApplicationDefinition>
<Compile Include="..\HiWPF\App.xaml.cs" Link="App.xaml.cs" />
</ItemGroup>
<ItemGroup>
<Page Include="..\HiWPF\MainWindow.xaml" Link="MainWindow.xaml">
<Generator>MSBuild:Compile</Generator>
</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 下來自己體驗一把喔~
查看本人最近其他原創作品請移步(想第一時刻閱讀本人最新文章請在博客園上關注我):
參考資料:
dotnet/samples - WPF Hello World sample with linked files
本文首發於本人的博客園文章https://www.cnblogs.com/enjoy233/p/workaround_to_use_the_designer_in_wpf_Core_App.html,轉載請註明出處,謝謝配合~