如何在 .Net Core 中引用 System.Windows 命名空间?

How to reference System.Windows namespace in .Net Core?

我是 WPF(.Net Framework)开发了很长时间,终于第一次涉足 .Net Core。我目前正在尝试将小型 v4.7.2 WPF 应用程序转换为 .Net Core 3.1。该解决方案包含一个 WPF 应用程序项目和一个 class 库项目,每个项目只有少数 classes,因此我决定创建一个包含 WPF 应用程序和 [=22] 的新解决方案会更容易=]库项目(均为.Net Core 3.1),然后从原始解决方案中复制cs和xaml文件。然而我似乎在第一关就跌倒了...

许多 classes 使用来自 System.Windows 命名空间的类型(以及 System.Windows.MediaSystem.Windows.Controls 等)。这些在 WPF 应用程序项目中解析良好,但在 class 库中解析不正确。我注意到 WPF 应用程序项目引用了框架 "Microsoft.WindowsDesktop.App.Wpf",但 class 库项目没有,我认为这是我的问题。但是我一辈子都想不出如何将这个框架添加到项目中。我该怎么做?!

我在其他地方看到了将 <UseWPF>true</UseWPF> 添加到 class lib csproj 文件的解决方案,但这没有效果。

像往常一样,我 post 刚提出问题就找到了答案。我还必须将 csproj 文件中的 SDK 更改为:

<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">