Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在Silverlight中从未渲染控件(UIElemet)获取可写的位图图像?_C#_Silverlight_Datagrid_Uielement_Writeablebitmap - Fatal编程技术网

C# 如何在Silverlight中从未渲染控件(UIElemet)获取可写的位图图像?

C# 如何在Silverlight中从未渲染控件(UIElemet)获取可写的位图图像?,c#,silverlight,datagrid,uielement,writeablebitmap,C#,Silverlight,Datagrid,Uielement,Writeablebitmap,我已经能够从Silverlight应用程序UI中呈现的控件创建一个WriteableBitmap,并通过SilverPDF将其导出到XImage,并将其包含在PDF文档中。此转换和导出过程运行良好 现在,我正在做一件事,我有一个数据网格,我完全在代码背后构建,我不打算在UI上呈现它。我现在的问题是获取DataGrid的WriteableBitmap,这样我就可以通过上面的过程运行它,将其转换为XImage并导出为PDF文档 我看到了这条线索,它似乎也描述了我的情况,但它没有帮助: 我想知道Mea

我已经能够从Silverlight应用程序UI中呈现的控件创建一个WriteableBitmap,并通过SilverPDF将其导出到XImage,并将其包含在PDF文档中。此转换和导出过程运行良好

现在,我正在做一件事,我有一个数据网格,我完全在代码背后构建,我不打算在UI上呈现它。我现在的问题是获取DataGrid的WriteableBitmap,这样我就可以通过上面的过程运行它,将其转换为XImage并导出为PDF文档

我看到了这条线索,它似乎也描述了我的情况,但它没有帮助:

我想知道Measure和Arrange函数是否只适用于WPF端,而不适用于Silverlight

如何从未渲染的控件获取可写位图?以下是迄今为止的相关代码:

//Add DataGrid with feature's attributes.
        DataGrid dg = new DataGrid();
        dg.AutoGenerateColumns = false;
        dg.HeadersVisibility = DataGridHeadersVisibility.None;
        DataGridTextColumn keyColumn = new DataGridTextColumn
        {
            Binding = new Binding {Path = new PropertyPath("Key")}
        };
        DataGridTextColumn valueColumn = new DataGridTextColumn
        {
            Binding = new Binding {Path = new PropertyPath("Value")}
        };

        dg.Columns.Add(keyColumn);
        dg.Columns.Add(valueColumn);
        dg.ItemsSource = _featureToPrint.Attributes;

        sp.Children.Add(dg);

        return sp;
    }
返回sp(stackpanel)后,我调用其上的测量/排列方法:

private static void ArrangeElement(UIElement element, double height, double width)
    {
        var box = new Viewbox { Child = element };

        box.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));
        box.Arrange(new Rect(10, 10, width, height));
    }
对于我所缺少的任何帮助或解释,我们将不胜感激!谢谢