带有 system.drawing 和可能的替代方案的 WIndows 通用应用程序
Posted
技术标签:
【中文标题】带有 system.drawing 和可能的替代方案的 WIndows 通用应用程序【英文标题】:WIndows universal app with system.drawing and possible alternative 【发布时间】:2015-07-21 17:07:19 【问题描述】:我正在开发一个 Windows 通用应用程序,我需要使用 Bitemap,但是
我似乎无法引用 System.Drawing,
为什么 windows 通用应用程序不能引用这个 dll,我有什么替代方案?
编辑 关于如何在通用应用程序中使用我已经编写的过滤库(取决于 system.drawing)的任何建议?
Tnx
【问题讨论】:
您必须停止尝试,您不能在通用应用程序中使用该命名空间。它不是通用的。请改用 Windows.UI.Xaml.Media.Imaging 命名空间。 你想用它做什么?替代方案取决于您的目标。 @Passant tnx alt;我正在构建一个图像过滤应用程序。为此我需要操作 Bitmap 对象 - 仍然支持吗? 我已经编辑了我的问题 - 请回复一个答案,以便我标记它 【参考方案1】:System.Drawing
是使用 GDI+ 的 .NET 命名空间。此技术不适用于 Windows 应用商店应用程序或通用 Windows 应用程序。见.NET for Windows apps。
您可以将Win2D 项目用于 WinRT 包装器,该包装器可从 C# 用于使用 Direct2D/DirectWrite 进行绘图,Windows Store 应用程序和 UWP 也支持这些包装器。 见Introducing Win2D: GPU accelerated 2D graphics programming in the Windows Runtime。
您可以使用SharpDX,它为 Direct2D、DirectWrite 和 Windows 映像组件 (WIC) 提供包装器。
简而言之:您不能在通用 Windows 应用程序中使用利用 System.Drawing
的现有库。
【讨论】:
Tnx,虽然很遗憾.. 有什么办法可以解决吗? 重写库以使用受支持的东西。 这些例子似乎只是展示了画布的使用。我只需要编辑内存中的文件,无需向用户显示:/.【参考方案2】:Cross platform System.Drawing
这可能无法直接解决问题。该项目使 System.Drawing 可用于 Linux 和 Mac osX10。支持 UWP 平台有助于在将代码从 WinForm 移植/测试到 UWP 时过渡到 Windows.UI。
【讨论】:
以上是关于带有 system.drawing 和可能的替代方案的 WIndows 通用应用程序的主要内容,如果未能解决你的问题,请参考以下文章
如何从 System.Drawing.Color 转换为 System.Windows.Media.Color?
如何将十六进制#FFFFFF 转换为 System.Drawing.Color [重复]
Mono 是不是支持 System.Drawing 和 System.Drawing.Printing? [关闭]