我的最终目标是在特定控件呈现任何更新时随时绘制更新的RenderTargetBitmap,这些更新将发送到COM对象并在另一个应用程序中呈现。
我正试图挂钩任何让我知道控件或其任何子节点已更新的事件。 My control是数据绑定文本和图像字段以及应用了ColorAnimations的渐变的混合。
有没有办法知道视觉控制(它的孩子)已经改变了?我试过听OnVisualChildrenChanged
,ArrangeOverride
,ParentLayoutInvalidated
和OnRender
,在渲染数据绑定子项时都不会触发它们。
最初的想法是简单地听取INotifyPropertyChanged
对象中的数据绑定字段,但ColorAnimation意味着控件的所有帧都将无法正确捕获。
答案 0 :(得分:1)
你可以挂钩到WPF使用的d3d“艰难的方式”。但是既然你正在寻找一些直接来自你的C#代码的直接方式,我发现了一些有趣的东西。
如果我没有弄错的话,这将让你以一种非常简单的方式挂钩到WPF的d3d表面,并在每次渲染表面时让你知道 - 所以你只能在更新时捕获。
http://msdn.microsoft.com/en-us/library/system.windows.media.compositiontarget.rendering.aspx
免责声明:从来没有尝试过,上一次我试用编译器很久以前 - :)
(感谢您对XSplit测试的贡献)