问题描述
我正在尝试从螺旋控件生成屏幕截图,但仅在后面的代码中-为什么这不起作用? 缺少什么了吗?
private void generate() {
ModelImporter importer = new ModelImporter();
Model3D model = importer.Load(@"c:\test\test.obj");
Model3DGroup group = new Model3DGroup();
group.Children.Add(model);
ModelVisual3D myModelVisual3D = new ModelVisual3D();
myModelVisual3D.Content = group;
HelixViewport3D viewer = new HelixViewport3D();
viewer.Children.Add(myModelVisual3D);
Dispatcher.BeginInvoke(new Action(() =>
{
RenderTargetBitmap bmp = new RenderTargetBitmap(1024,768,96,PixelFormats.Pbgra32);
bmp.Render(viewer);
PngBitmapEncoder png = new PngBitmapEncoder();
BitmapFrame frame = BitmapFrame.Create(bmp);
png.Frames.Add(frame);
using (Stream stm = File.Create(@"c:\test\test.png"))
{
png.Save(stm);
} }
),DispatcherPriority.ContextIdle,null);
}
编辑:
无例外-无-代码缝正常工作,但PNG为空。如果我将HelixViewport3D viewer
与XAML中的控件交换,则可以生成PNG。使用在代码中定义的HelixViewport3D时,渲染不起作用并且PNG为空-大小可以-它是PNG但没有内容-当我显示它时是透明的。
在这个test.obj文件中没有什么特别的-当我使用XAML定义的HelixViewport3D时-一切都很好。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)