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

解決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下創建兩個項目:

而兩個應用程序(.net core項目和相應.net Framework 項目)都將引用相同的文件,共享一個Assembly Name

安裝 vs 2019 professional/enterprise版本

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

1555775855179

設置好相關項目名和存放路徑後,會彈出:

img2-BravoYeung
下一步驟,勾選.NET core下的"Use preview SDK"會解決這個問題。

當然也可使用命令行/Powershell來創建。

  • 打開命令行/Powershell
  • 使用cd命令,切換到自己平時存vs項目的路徑(比如我切換到D:\Coding)
  • 輸入命令dotnet new wpf -n "CoreHiWPF"

creating-WPF-using-CMD

在vs的設置裏,勾選.NET core下的"Use preview SDK"

img3

設置完,重啓vs才能生效。
此時用vs打開剛纔的Solution即可。

使用vs自帶的模板,選擇其中的 .net core WPF 創建Project, 取名爲"CoreHiWPF"

1555775855179

1555775915106

在剛創建的Solution中使用vs自帶的模板,選擇其中的.net framework WPF添加新的project,取名爲"HiWPF"

1555775957478

1555775984667

此時Solution中的文件目錄爲:

1555776045894

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

右鍵點擊 .net core WPF項目 CoreHiWPF,選擇最後的Properties, 然後將其Assembly Name 改爲HiWPF.

1555773128801

接着右鍵該項目,選"Edit CoreHiWPF.csproj"。

1555773253120

按下圖加入如下相應代碼:

1555773381960

  <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了。

1555773860860

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

接下來,我在MainWindow.xamlGrid中加入了兩行,一行放的是一個含有文本可換行的Label,另一行是Exit按鈕。然後在Exit按鈕上加入了Click事件,在Window上加入了Loaded事件。

modify

代碼改完之後,F5運行,最後的界面如下:
1555774408266

項目代碼已推到github,歡迎Forkstar.
傳送門: .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,轉載請註明出處,謝謝配合~

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