RenderTargetBitmap 不尊重 ColumnDefinitions 宽度
我需要创建带有一些隐藏列的网格快照(通过设置它的 ColumnDefinition.Width = 0)。
在屏幕上看起来不错,但创建的图像
具有所有可见的列(不尊重ColumnDefinitions)
。我在某处发红,这是因为 RenderTargetBitmap 正在查看不存在这些更改的不同层(视觉层与布局层)。 是否有机会使用正确的 ColumnDefinitions 获得网格的真实快照? 我不能简单地使用 Rectagnel.Fill = VisualBrush,因为我需要循环存储这些图像(每次迭代 = 新图像)。
我尝试了类似的方法 这个片段
I need to create snapshot of Grid with some hidden columns (by setting it's ColumnDefinition.Width = 0).
On screen it looks fine, but the created image
has all columns visible (does not respect the ColumnDefinitions)
. I red somewhere that it is because the RenderTargetBitmap is looking at different layer where these changes aren't present (Visual layer vs. Layout layer). Is there any chance to get realistic snapshot of the grid with correct ColumnDefinitions? I cannot simply use Rectagnel.Fill = VisualBrush, because I need to store these images in cycle (every iteration = new image).
I tried ways like this snippet
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
需要在每个快照之前强制
UpdateLayout()
。我在周期中更改了尺寸,布局更新得太晚了。It was needed to force
UpdateLayout()
before each snapshot. I changed the sizes in cycle and layout was updated too late.在创建
UIElement
的快照之前调用此方法:Call this method before you create a snapshot of an
UIElement
: