在Silverlight 2中获取当前屏幕的XAML

时间:2008-10-10 13:23:05

标签: silverlight xaml image

我正在尝试将动态创建的silverlight 2页面/图像发送到ASP.net Web服务,以将其呈现为位图图像。

我可以看到很多例子如何在Silverlight版本1中使用javascript(see here)获取XAML,但我有一些区别。

a)我正在使用silverlight 2 RC1
b)我已在c#
中动态地向页面添加控件 c)我更愿意使用c#来获取新的XAML以将所有的男女同校留在一个地方。

有谁知道如何从控件或c#中的页面中提取XAML?

谢谢


更新:现在可以在silverlight 3下使用可写位图将XAML保存为JPEG,请参阅我的博客文章:http://blog.blueboxes.co.uk/2009/07/21/rendering-xaml-to-a-jpeg-using-silverlight-3/

3 个答案:

答案 0 :(得分:0)

遗憾的是,遗憾的是,在元素树上没有.ToXaml()的方法。您可以使用VisualTreeHelper构建这样的方法,并通过我想的特定元素进行递归。

答案 1 :(得分:0)

答案 2 :(得分:0)

SilverlightContrib有一个XamlWriter类,可以从实时控件中提取XAML。

它是免费的。

链接为: http://silverlightcontrib.org

代码如下:


// using SilverlightContrib.Xaml;

            var cb = new GroupBox();
            StringBuilder sb = new StringBuilder();
            XamlWriterSettings settings = new XamlWriterSettings();

            using (XamlWriter writer = XamlWriter.CreateWriter(sb, false, settings))
            {
                writer.WriteElement(cb);
            }

            string result = sb.ToString();