C# 如何在Silverlight中从未渲染控件(UIElemet)获取可写的位图图像?
我已经能够从Silverlight应用程序UI中呈现的控件创建一个WriteableBitmap,并通过SilverPDF将其导出到XImage,并将其包含在PDF文档中。此转换和导出过程运行良好 现在,我正在做一件事,我有一个数据网格,我完全在代码背后构建,我不打算在UI上呈现它。我现在的问题是获取DataGrid的WriteableBitmap,这样我就可以通过上面的过程运行它,将其转换为XImage并导出为PDF文档 我看到了这条线索,它似乎也描述了我的情况,但它没有帮助: 我想知道Measure和Arrange函数是否只适用于WPF端,而不适用于Silverlight 如何从未渲染的控件获取可写位图?以下是迄今为止的相关代码: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
//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));
}
对于我所缺少的任何帮助或解释,我们将不胜感激!谢谢