在 .NET Core 3.1 中使用 ImageSource?

Posted

技术标签:

【中文标题】在 .NET Core 3.1 中使用 ImageSource?【英文标题】:Using ImageSource In .NET Core 3.1? 【发布时间】:2020-05-06 22:22:27 【问题描述】:

我正在尝试在以 netcoreapp3.1 为目标的控制台应用程序中使用 System.Windows.Media.ImageSource。查看来自 Microsoft here 的文档,它似乎适用于 .NET Core 3.0 和 3.1

适用于 NET Core 3.1 3.0

我的示例代码在net472 时运行良好,但一旦我改回netcoreapp3.1,它将无法构建。

演示应用

using System;
using System.Windows.Media;
using System.Windows.Media.Imaging;

namespace ImageSourceTesting

    internal static class Program
    
        private static void Main()
        
            ImageSource myImage = new BitmapImage();
            Console.Write(myImage);
        
    

在尝试构建时,我看到以下内容:

[CS0234] 类型或命名空间名称“Media”不存在于 命名空间“System.Windows”(您是否缺少程序集引用?)

【问题讨论】:

您是否包含适用于 .net core 3.1 的正确 NPM 包? 【参考方案1】:

System.Windows.Media.ImageSource 是 WPF 的一部分,因此如果您创建了控制台应用程序,那么您必须使用 UseWPF 标签在项目中添加 WPF 支持,例如:

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

    <PropertyGroup>
        <OutputType>WinExe</OutputType>
        <TargetFramework>netcoreapp3.1</TargetFramework>
        <UseWPF>true</UseWPF>
    </PropertyGroup>

   </Project>

【讨论】:

以上是关于在 .NET Core 3.1 中使用 ImageSource?的主要内容,如果未能解决你的问题,请参考以下文章

在 .NET Core 3.1 中使用 ImageSource?

如何在 ASP.NET Core 3.1 中使用 Java?

Wcf 服务在 .NET Core 3.1 控制台应用程序中工作,但在 ASP.NET Core 3.1 Web API 中无法工作

在 .Net Core 3.1 中使用 WCF 服务

在 .net core 3.1 项目中使用 vb dll

在 .NET Core 3.1 中执行存储过程