C# 从windows窗体到Silverlight的图形?

C# 从windows窗体到Silverlight的图形?,c#,.net,winforms,silverlight,graphics,C#,.net,Winforms,Silverlight,Graphics,以下代码适用于windows窗体。 我怎样才能对Silverlight这样做? 我想没有图形对象 Bitmap bm = new Bitmap(600, 600); Graphics g = Graphics.FromImage(bm); Brush b = new LinearGradientBrush( new Point(1, 1), new Point(600, 600), Color.White, Color.Red); Point[] points = new Point[] {n

以下代码适用于windows窗体。 我怎样才能对Silverlight这样做? 我想没有图形对象


Bitmap bm = new Bitmap(600, 600);
Graphics g = Graphics.FromImage(bm);
Brush b = new LinearGradientBrush(
new Point(1, 1), new Point(600, 600),
Color.White, Color.Red);
Point[] points = new Point[]
{new Point(10, 10),
 new Point(77, 500),
 new Point(590, 100),
 new Point(250, 590),
 new Point(300, 410)};
 g.FillPolygon(b, points);
 bm.Save("testandoImagem.jpg", ImageFormat.Jpeg);


Alan,即使是从SL客户端应用程序,您也可以在服务器端完成这项工作,您没有在用户界面中显示任何内容,我会将此代码放在业务层中,该层可以完全访问.NET Framework。请记住,从SL无法直接在客户端计算机上保存,因此应使用另一种方法。

可以将形状渲染为可写位图,但Silverlight没有内置的将数据编码为JPEG的支持

请参见以下问题:

        WriteableBitmap wb = new WriteableBitmap(600, 600);
        Polygon p = new Polygon();
        p.Points = new PointCollection() { new Point(10, 10), new Point(77, 500), new Point(590, 100), new Point(250, 590), new Point(300, 410) };
        p.Fill = new LinearGradientBrush()
        {
            //Gradient angle is 0,0 to 1,1 by default
            GradientStops = new GradientStopCollection() { 
                new GradientStop() { Color = Colors.White, Offset = 0 }, 
                new GradientStop() { Color = Colors.Red, Offset = 1 } }
        };

        wb.Render(p, null);
        wb.Invalidate();

        //Save WriteableBitmap as described in other questions