首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何制作依赖于System.Drawing命名空间的现有C#代码的Silverlight版本

要将依赖于System.Drawing命名空间的现有C#代码转换为Silverlight版本,需要进行以下步骤:

  1. 首先,需要将System.Drawing命名空间替换为System.Windows.Media命名空间,因为Silverlight使用这个命名空间来处理图像和图形。
  2. 其次,需要将System.Drawing.Bitmap类型替换为System.Windows.Media.Imaging.WriteableBitmap类型,因为Silverlight使用这个类型来处理位图图像。
  3. 接下来,需要将System.Drawing.Graphics类型替换为System.Windows.Media.Imaging.WriteableBitmap类型,因为Silverlight使用这个类型来处理图形绘制。
  4. 最后,需要将System.Drawing.Color类型替换为System.Windows.Media.Color类型,因为Silverlight使用这个类型来处理颜色。

以下是一个简单的示例,演示了如何将依赖于System.Drawing命名空间的现有C#代码转换为Silverlight版本:

代码语言:csharp
复制
// 原始代码
using System.Drawing;

public void DrawImage()
{
    Bitmap bitmap = new Bitmap(100, 100);
    Graphics graphics = Graphics.FromImage(bitmap);
    graphics.DrawImage(Image.FromFile("image.jpg"), new Point(0, 0));
    bitmap.Save("output.jpg");
}

// Silverlight版本
using System.Windows.Media;
using System.Windows.Media.Imaging;

public void DrawImage()
{
    WriteableBitmap bitmap = new WriteableBitmap(100, 100);
    WriteableBitmapExtensions.DrawImage(bitmap, new BitmapImage(new Uri("image.jpg", UriKind.Relative)), new System.Windows.Point(0, 0));
    bitmap.SaveJpeg(new FileStream("output.jpg", FileMode.Create), 100, 100, 0, 100);
}

需要注意的是,Silverlight不支持所有的System.Drawing功能,因此在转换过程中可能需要进行一些调整。此外,Silverlight也不支持所有的.NET Framework功能,因此在转换过程中可能需要使用Silverlight特定的API。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

杂谈 System.Drawing.Common 的跨平台性(关键词:libgdiplus .NET Core Mono Win32 Linux ……)

System.Drawing 有两个意思,第一个是 System.Drawing.dll 程序集,第二个是 System.Drawing 命名空间。...目前均已完成基于 libgdiplus 的 System.Drawing 命名空间的跨平台。...当然,这个跨平台迁移的唯一目的是“兼容”,是为了让现有的基于 System.Drawing 的代码能够跨平台跑起来。仅此而已,不会有任何的性能优化或者设计优化。...例如是否会导致同一个类型分属两个不同的程序集导致分别依赖两个不同程序集的不同代码之前无法传递 System.Drawing 命名空间中的参数呢?...不依赖 System.Drawing 的其他免费开源库 如果你当前的开发平台依然无法使用到 System.Drawing 命名空间,那么可以考虑使用另外的一些替代品。

2.4K60

silverlight 《Hands-On-Labs》教程系列

[在这个教程中你会看到如何使用多种访问远程数据的方法,你将使用除了WCF,web service的WebClient, Downloader和 WebRequest来获取数据.LINQ to XML和数据绑定都已经在....你可以使用designer工具去设计界面然后添加事件,设置属性.在后置代码中 调用方法.这个控件包可以在你开发的项目中就像内置空间的一样使用.此外你可以添加属性,方法,事件到你的控件中来制定更加适应的控件...to get JavaScript in the browser and C# code in the Silverlight plug-in talking to one another....[在设个教程中你将会看到如何使用css来Silverlight plug-in进行交互.如何建立适应浏览器大小变化的Silverlight,如何融合HTML和Silverlight,如何在浏览器和c#中访问...[如何在XAML中建立Storyboards制作动画.] Requirements: This tutorial requires the above installs only.

92670
  • 开发Silverlight 2.0的自定义控件

    介绍 这篇文章主要展示了你制作一个Silverlight 2.0的自定义空间需要哪些步骤和在你的Silverlight项目中重用代码。...因为这是一个控件库,我们要添加程序集System.Windows.Controls的引用,这个程序集在Silverlight 2.0 beta 1的版本号是1.0.0.0(不要问为什么:-) ),默认会并放在...这个特性帮助XAML处理器找到和匹配Xml命名空间和CLR的命名空间,因此添加这个特性带下面的参数: [assembly: System.Windows.Markup.XmlnsDefinition (...这个设计包含一个背景矩形,一个大纲,两个亮点将在和用户交互的时候动画显示。 在底部你发现有一个ContentPresenter元素,它是Button的Content属性的占位符。...Silverlight 2.0的控件是怎么实现的,可以通过学习Silverlight 2.0的控件源代码来学习设计Silvelight 2.0 控件。

    73390

    从Flash到Silverlight进阶教程-用代码来创建动画

    从Flash到Silverlight进阶教程 用代码来创建动画 这节里将要讲述一个自定义用户控件最基本的操作,就好象Flash中的MovieClips一样,动态的将其添加到舞台上。...新建flash文件 在第一帧添加两个按钮起好实例名称 导入一张图片,以中心注册为MovieClips,将链接标识符设置为“man” 新建立一层命名为“as”,添加如下代码 as2.0版本:...而在Silverlight中所有的的元素包括动画等都是通过XAML来描述的,你始终都能看到他的源代码,这个也可以说是Silverlight和Flash最大的不同。...这里你会感觉到Silverlight更像以MXML来描述自身的Flex。 在下边我会以Silverlight来重新制作上边的例子,这里以Visual Studio 2008和Blend来做开发环境。...Visual Studio 2008来实现后台代码的逻辑,Blend来做前台UI效果的展示。 新建项目,参考Silverlight初级教程-建立silverlight项目。

    98150

    “前.NET Core时代”如何实现跨平台代码重用 ——源文件重用

    微软在2002年推出了第一个版本的 .NET Framework,这是一个主要面向Windows 桌面(Windows Forms)和服务器(ASP.NET Web Forms)的基础框架。...如下图所示,两个分别针对Silverlight和WPF的项目共享相同的目录,与两个项目文件同在一个目录下的C#文件Shared.cs可以同时被包含到这两个项目之中。 ?...二、文件链接 当我们采用默认的方式将一个现有的文件添加到当前项目之中的时候,Visual Studio会将目标文件拷贝到项目本地的目录下,所以根本起不到共享的目的。...但是针对现有文件的添加支持一种叫做“链接”的方式使添加到项目中的文件指向的依然是原来的地址,我们可以为多个项目添加针对同一个文件的链接以实现源文件跨项目共享。...,包含在项目Shared.shproj中的三个C#文件会自动作为当前项目的源文件参与编译。

    86460

    Silverlight游戏设计(Game Design):(十四)练习用游戏素材资源的获取及相关工具使用心得…

    通过前6节的Demo制作演示,大家应该已经相当熟悉这款Silverlight-2D游戏场景编辑器了;通过它我们可以构建出各种类型的游戏,这也让广大的Silverlight游戏爱好者们变得蠢蠢欲动,近一段时间里有很多朋友询问我游戏素材资源是如何获取的...,虽然版本更新频率相当的低(1年一次?...PS: 从帝国时代的素材分解中我们不难看出开发者们将素材进行了压缩封包,当然,对于Silverlight这样基于浏览器运行且目前极大依赖于CPU的应用程序来说,如果也想做到将大量图片资源下载后再解包,过程中的巨大性能消耗可想而知...另外,通过使用这些资源查看器,我们不仅需要从中理解国外大作开发者们是如何布局游戏资源的,同时还应该分析实际我们该如何将这些原理更完全的运用到Silverlight游戏素材资源的布局和使用中。...最后,游戏素材在处理时我们通常还会用到的文件批量改名工具对精灵帧图片或动画各帧图片按一定规律批量命名以提供一定的逻辑规律方便编码;同时还会使用到类似Photoshop、Firework等图形处理软件对图片进行镂空

    1.4K10

    我的20年职业生涯:全是技术债

    对于 C# 开发人员来说,这实际上是一个非常棒的框架。Watson 的公司也曾用 Silverlight 构建了一些非常棒的东西。...Silverlight 现在早已不复存在,他们用 JavaScript 重写了它,但 Watson 认为,新版本没有旧版本酷了。 开发工具的变化有多快?...当 .NET Core 刚发布时,它是专为在 Linux 上运行而设计的更新、更轻、更快的 .NET 版本。基本的 C# 代码都很容易移植过来,但没有人会在真实的应用程序中只使用基本代码。...虽然一直有强大的力量在“颠覆”微服务、Lambda 函数等服务构建方式,但如果忽略掉这些实现细节,那服务器的内存空间里肯定还有 db+ 服务在运行、也还有空闲周期没有利用起来。...可以综合考虑如下几方面的收益: 开源:提升现有业务收入、支持新业务的开拓; 节流:节省维护人员、节省运营费用; 组织:人员结构调整、组织能力培养。

    26610

    C# 方法与参数 常见命名空间汇总 using的使用 main方法参数

    本文主要讲 C# 常见命名空间 using static 指令 && 调用静态方法 嵌套命名空间&&作用域 别名 Main() 方法 ---- C# 常见命名空间 命名空间 作用 System...System.Security  以安全为中心的命名空间,有很多用来处理权限、加密等问题的类型 System.Xml 用于XML数据交互的类型 注:在C#中,引入一个命名空间时...locationNum=8&fps=1 ---- using static 指令 && 调用静态方法 在C#中在不同命名空间的类,需要先引入该命名空间,然后new(实例化)后,才能使用。...注: 很少会这样写代码,因为根据约定,每个文件只应该有一个类型声明、在头部引入命名空间。 ----  别名 C# 中,可以使用using指令为命名空间或类型取一个别名,别名将在文件全范围起替代作用。...使用visual studio 软件开发C#,一般用不到,使用控制台应用手动编译 源代码时,提供的参数会传入Mian方法中。

    1.3K40

    C#上位机开发(二)—— Hello,World

    这里我们双击窗体界面,这也是VS的特性,双击一个控件,就会进入对应代码文件部分,这些代码全由VS在生成项目时自动生成,下面进行详细的解释: 1 /*filename:Form1.cs*/ 2 //使用命名空间...(namespace):在C#中用命名空间将很多类的属性及其方法进行封装供调用,类似C语言中将变量和函数封装成一个个.h文件,调用的时候只需要#include "filepath + filename"...就可以使用,比如刚开始时用关键字using声明了一些所需要的系统命名空间(line1-10);然后采用关键字namespace来自定义一个用户工程所需的命名空间HelloWorld,在我们定义的这个命名空间里就可以定义一些类和方法来进行下一步的实现...;   清楚了这几个概念后,就来实现我们想要的功能,按下按钮是一个事件,那么,如何编写或者在哪编写这个事件的事件处理函数呢?...按钮,添加文本框清空代码,完整代码如下: //用户项目工程自定义命名空间HelloWorld namespace HelloWorld { //定义了一个名称为Form1的公共类,并且在定义类的同时创建了一个这个类的对象

    2K41

    .NET 基金会项目介绍-.NET Compiler Platform Roslyn

    .NET Compiler Platform (“Roslyn”) .NET Compiler Platform (“Roslyn”) 是一款开源的 C# 和 Visual Basic 编译器,它提供了丰富的代码分析接口...你可以使用它来构建自己的代码分析工具,微软公司当前就是使用它来实现 Visual Studio!...可以基于语法分析来编写代码生成器,替代提前的反射方法或者T4。这意味着,写代码的时候就可以生成代码。 编译器的升级不再依赖于VS和framework的版本发布。...常规的业务开发,或许涉及不到上面的工作,但假如是研发岗位。为了更优质的代码,你需要学习使用这个框架。...Toolkit - 【WP 工具库】 Windows Template Studio - 【UWP 项目模板】 Windows Forms - 【客户端开发框架】 WiX Toolset - 【安装包制作框架

    97120

    .NET 采用 SkiaSharp 生成二维码和图形验证码及图片进行指定区域截取方法实现

    在最新版的 .NET 平台中,微软在逐步放弃 System.Drawing.Imaging ,给出的理由如下: System.Drawing命名空间对某些操作系统和应用程序类型有一些限制。...在Windows, System.Drawing 依赖于GDI+操作系统附带的本机库。...某些Windows SKUS Windows Server Core 或 Windows Nano)不包含此本机库作为 OS 的一部分。 如果使用此命名空间并且无法加载库,则运行时将引发异常。...命名空间中的某些类型依赖于 GDI+ ,而 Windows 服务以及 ASP.NET Core 和 System.Drawing ASP.NET 应用不支持。...但是,命名空间中的基元类型(如 System.Drawing.Color 、、 和 System.Drawing.Size System.Drawing.Point System.Drawing.Rectangle

    1.4K40

    上位机开发二----第一个程序hallo world

    这里我们双击窗体界面,这也是VS的特性,双击一个控件,就会进入对应代码文件部分,这些代码全由VS在生成项目时自动生成,下面进行详细的解释: 1 /*filename:Form1.cs*/ 2 //使用命名空间...(namespace):在C#中用命名空间将很多类的属性及其方法进行封装供调用,类似C语言中将变量和函数封装成一个个.h文件,调用的时候只需要#include "filepath + filename"...就可以使用,比如刚开始时用关键字using声明了一些所需要的系统命名空间(line1-10);然后采用关键字namespace来自定义一个用户工程所需的命名空间HelloWorld,在我们定义的这个命名空间里就可以定义一些类和方法来进行下一步的实现...;   清楚了这几个概念后,就来实现我们想要的功能,按下按钮是一个事件,那么,如何编写或者在哪编写这个事件的事件处理函数呢?...按钮,添加文本框清空代码,完整代码如下: //用户项目工程自定义命名空间HelloWorld namespace HelloWorld { //定义了一个名称为Form1的公共类,并且在定义类的同时创建了一个这个类的对象

    82842

    图解-Silverlight做一个简单的动画

    首先在Design中做好你要做动画的图片,然后将图片导出为Silverlight的Xaml格式。用 Blend新建立一个Silverlight 2项目,将刚才生成的Xaml导入Blend。...在Blend对导入的Xaml做创建控件、命名元素、制作动画状态等处理,简单的写一个控制动画状态的方 法,最终发布即可。...将导出图片格式设置为silverlight的Xaml格式,参数选择如图所示: 用Blend新建立Silverlight 2项目。将生成的Xaml插入“Grid”中。...如图所示: 第二部分:从静态到动态 在Blend中右键点击刚才导入进来的图形,选择创建控件: 输入控件的名称: 在新创建的空间中给各个元素分组起好名字,这样能方便后期的识别和制作动画:...看完后继续使用StoryBoard制作各个视图状态的动画。 第三部分:简单的控制 在刚才制作的控件所对应的cs文件中做一点简单的状态控制: 好了到这里所有的制作就完成了。

    1K50

    .NET Core跨平台的奥秘:复用之殇

    比较极端的场景就是:当我们需要为一个现有的桌面应用提供针对移动设备的支持时,我们不得不从头到尾开发一个全新的应用,现有的代码难以被新的应用所复用用。...如下图所示,两个分别针对Silverlight和WPF的项目共享相同的目录,与两个项目文件同在一个目录下的C#文件Shared.cs可以同时被包含到这两个项目之中。 ?...二、程序集复用 我们采用C#、VB.NET这样的编程语言编写的源文件经过编译会生成有IL代码和元数据构成的托管模块,一个或者多个托管模块合并生成一个程序集。...我们不妨通过实验来获得这个问题的答案。我们利用Visual Studio创建一个针对.NET Framework 2.0的控制台应用(命名为App),并在作为程序入口的Main方法上编写如下一段代码。...,比如我们创建一个兼容.NET Framework 4.5和Silverlight 5.0的PCL项目,被引用的程序集mscorlib.dll的版本为2.0.5.0,但是Silverlight 5.0运行时环境中的程序集

    1.3K80

    cefsharp教程_常见的数据分析方法有哪些

    大家好,又见面了,我是你们的朋友全栈君 目录 1.取消右键功能 2.设置默认语言 3.设置cookie 4.读取cookie 5.c#调用js 6.html调用c# 7....模拟调用调试F12功能 8.关闭窗体 9.cefsharp中文文档参考 ---- 本节汇总一些关于cefsharp的使用方法,包括c#调用HTML页面中的js,也可以是HTML中的按钮调用c#的方法。... c#代码 using CefSharp; using CefSharp.WinForms; using System; using System.Collections.Generic...public class CefCustomObject { public void aa() { MessageBox.Show("注意方法的命名...本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    1.9K40

    .NET for Visual FoxPro Developers(5)

    命名空间(Namespaces) 在 .NET 中,依靠命名空间(namespaces)来避免类名的重复。命名空间是一种命名机制,它允许你针对你的类有逻辑的予以声明。...例如,在 .NET Framework 中,存在像下面这样的命名空间: System.Drawing System.Data.SqlClient System.Windows.Forms System.Web.Services.Protocols...命名空间允许你像生物学分类方法那样对你的类进行分类。 微软建议你用以下的方式来定义你的命名空间:命名空间的第一部分是你的公司名,第二部分是你的产品名,第三部分是特定的类的分类名,如此等等。...关于如何指派类到一个命名空间,请参看第3章“C# 入门”和第4 章“Visual Basic .NET 入门”。...他们希望更多的开发者可以接受这个规范,以便于在开发人员之间增强代码的可读性。一个令很多开发者感到惊讶的规定是停止使用匈牙利命名法。

    9710
    领券