我正在尝试将当前项目中每张幻灯片的快照保存为图像文件。作为其中一部分,我想使用RenderTargetBitmap
来获取Grid
及其内容。这是UserControl
中我用作每张幻灯片模板的xaml:
<Grid Background="White" Opacity="0.8" x:Name="ContentGrid">
<!-- Inking area -->
<InkCanvas x:Name="inkCanvas"/>
</Grid>
我正在使用它来试图获得它:
RenderTargetBitmap b = new RenderTargetBitmap();
await b.RenderAsync(ContentGrid, 720, 480);
然后我循环遍历幻灯片集合,在每个幻灯片上调用方法。
但是,它始终会在RenderAsync
方法上引发错误。例外是:
价值不在预期范围内。
我之前使用过这种方法,它总是很好用。唯一不同的是我在InkCanvas
中有Grid
,但我不知道这会对任何事情产生什么影响。
编辑:有趣的是,即使只创建一个没有设置属性的空白Grid
并尝试渲染它也会引发相同的异常。
答案 0 :(得分:0)
我在.NET Native运行时和编译器团队工作。我怀疑我们错误地从你的UI类型的某个属性中剥离了setter或getter。停止所有第一次机会异常应该显示一个堆栈,其中有一些PropertyInfo /反射在go之前看起来就是goop。如果是这样,可以通过向Default.rd.xml添加几行来更正此问题。特别是几行:
<Type Name="Full.Namespace.And.Name.Of.UIType" Dynamic="Required All"/>
<Type Name="Full.Namespace.And.Name.Of.OtherUIType" Dynamic="Required All"/>
...
如果您无法解决问题,请发送电子邮件至dotnetnative@microsoft.com,然后小心翼翼地解决问题。