我想使用c#将xaml转换为png图像。我使用了RenderTargetBitmap。如果要转换的xaml显示在窗口或页面中,并且您可以在屏幕上实际看到它,那么它的效果非常好。但是如果窗口关闭或隐藏,将生成空白图像。有谁知道为什么会这样或者如何让它发挥作用?
答案 0 :(得分:0)
我建议你:
在拍摄期间将其置于屏幕上 然后删除它。如果物体很小,它甚至可能出现 消失的只不过是闪烁。
如果您不满意,可以尝试Force Render a WPF Control using this:
使用ViewBox在内存中呈现
Grid grid = new System.Windows.Controls.Grid() { Background = Brushes.Blue, Width = 200, Height = 200 };
Viewbox viewbox = new Viewbox();
viewbox.Child = grid; //control to render
viewbox.Measure(new System.Windows.Size(200, 200));
viewbox.Arrange(new Rect(0, 0, 200, 200));
viewbox.UpdateLayout();
RenderTargetBitmap render = new RenderTargetBitmap(200, 200, 150, 150, PixelFormats.Pbgra32);
render.Render(viewbox);