我可以使用Silverlight的WriteableBitmap来保存UI中不可见部分的位图吗?

6

假设我有一个网格,需要向下滚动才能看到所有的行,并且我想保存一些当前不可见的行作为位图。这是否可行,还是我必须实际滚动下去,“拍摄快照”,然后再向上滚动?

这是一个可行性问题,因此我没有代码分享。

1个回答

4
是的。您可以将任何UIElement(以及其子元素)呈现为可写位图。
当您这样做时,还会指定一个变换。这意味着您可以显示UIElement的任何部分(如果您不想全部显示)。
它是否在屏幕上“可见”对位图渲染完全没有影响。它不像屏幕截图那样工作。
输出裁剪仅取决于目标位图的大小和所提供的渲染变换。
例如,Silverlight旋转和缩放位图图像以适合矩形而无需裁剪使用从未成为视觉树一部分的UIElements来创建然后呈现位图。

谢谢。跟进一下,这是否意味着我可以保存当前屏幕上不可见的 UIElement? - r0u1i
是的,您可以呈现任何附加到可视树或未附加到可视树的UIElement。添加了指向另一个[非常酷]答案的链接 :) - iCollect.it Ltd
@TrueBlueAussie,您在哪里添加了链接? - Ragavan
@User121212:答案中唯一的链接就是我所指的:https://dev59.com/GWw15IYBdhLWcg3wJ4YR#6802332 - iCollect.it Ltd
@TrueBlueAussie 我的问题是,如果我有UI元素,而不进行渲染,如何在Silverlight中保存为图像? - Ragavan
@User121212:请在Stack Overflow上以问题的形式提出您的问题。链接中显示的示例将使位图与屏幕断开连接(这正是您想要的)。 - iCollect.it Ltd

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接