Графика из окон создается в Silverlight? - PullRequest
1 голос
/ 04 марта 2011

Следующий код работает для форм 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);


Ответы [ 2 ]

2 голосов
/ 04 марта 2011

Алан, даже из клиентского приложения SL вы можете делать все это на стороне сервера, вы ничего не показываете в пользовательском интерфейсе, я бы поместил этот код на бизнес-уровень, который имеет полный доступ к .NET Framework.Имейте в виду, что из SL вы не можете сохранить на клиентской машине напрямую, поэтому вам следует использовать другой способ.

1 голос
/ 04 марта 2011

Вы можете отобразить фигуру в виде WriteableBitmap, но Silverlight не имеет встроенной поддержки для кодирования данных в JPEG.

См. Вопросы StackOverflow:

Как сохранить BitmapImage / WriteableBitmap с помощью SaveFileDialog в Silverlight 3.0?

Лучший Jpeg кодер для Silverlight 4.0

http://msdn.microsoft.com/en-us/library/system.windows.media.imaging.writeablebitmap.render(v=VS.95).aspx

        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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...