我试图将Visiblox图表渲染到图像以便能够同时显示数百个图像。该图表在代码中生成并呈现而不显示它。RenderTargetBitmap渲染为空控件(如果未在窗口中设置)(Visiblox图表)
我面临的问题是图表渲染后看起来是空的。上面的控件是图表,最下面的图表是在将图表添加到控件之前呈现的图表。一些渲染正在完成,因为水印在那里。
图表正在使用绑定和datacontext填充(以防万一)。在呈现之前查看图表,看起来它实际上是空的,谢谢让我问“何时由UserControl?检索到绑定”。
这是我使用的呈现图像的代码:
public BitmapSource Render(FrameworkElement control)
{
if (control == null)
{
throw new ArgumentNullException("control");
}
control.UpdateLayout();
Viewbox viewBox = new Viewbox();
viewBox.Child = control; // Control to render
viewBox.Measure(new System.Windows.Size(control.Width, control.Height));
viewBox.Arrange(new Rect(0, 0, control.Width, control.Height));
viewBox.ApplyTemplate();
viewBox.UpdateLayout();
RenderTargetBitmap renderer = new RenderTargetBitmap((int)(control.Width * _dpiX/96.0), (int)(control.Height * _dpiY/96.0), _dpiX, _dpiY, PixelFormats.Pbgra32);
DrawingVisual drawingVisual = new DrawingVisual();
using (DrawingContext drawingContext = drawingVisual.RenderOpen())
{
VisualBrush visualBrush = new VisualBrush(viewBox);
drawingContext.DrawRectangle(visualBrush, null, new Rect(new Point(), new System.Windows.Size(control.Width, control.Height)));
}
renderer.Render(drawingVisual);
// Remove the container to be able to reuse the control again if we appended it to a viewbox
viewBox.Child = null;
return renderer;
}
令人惊讶的是,我没有阅读,因为我没有在Silverlight上。谢谢! – 2012-04-18 14:59:09
很高兴能帮到你! – 2012-04-18 15:38:31
无论如何,这并不能解决绑定数据的问题。因为我绑定看起来像绑定不处理,直到控件加载正确? – 2012-04-18 16:11:25