跟踪控件何时呈现

时间:2011-10-21 03:49:01

标签: .net wpf .net-4.0 rendering

我的最终目标是在特定控件呈现任何更新时随时绘制更新的RenderTargetBitmap,这些更新将发送到COM对象并在另一个应用程序中呈现。

我正试图挂钩任何让我知道控件或其任何子节点已更新的事件。 My control是数据绑定文本和图像字段以及应用了ColorAnimations的渐变的混合。

有没有办法知道视觉控制(它的孩子)已经改变了?我试过听OnVisualChildrenChangedArrangeOverrideParentLayoutInvalidatedOnRender,在渲染数据绑定子项时都不会触发它们。

最初的想法是简单地听取INotifyPropertyChanged对象中的数据绑定字段,但ColorAnimation意味着控件的所有帧都将无法正确捕获。

1 个答案:

答案 0 :(得分:1)

你可以挂钩到WPF使用的d3d“艰难的方式”。但是既然你正在寻找一些直接来自你的C#代码的直接方式,我发现了一些有趣的东西。

如果我没有弄错的话,这将让你以一种非常简单的方式挂钩到WPF的d3d表面,并在每次渲染表面时让你知道 - 所以你只能在更新时捕获。

http://msdn.microsoft.com/en-us/library/system.windows.media.compositiontarget.rendering.aspx

免责声明:从来没有尝试过,上一次我试用编译器很久以前 - :)

(感谢您对XSplit测试的贡献)