2011-10-21 28 views
0

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

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

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

最初的想法是简单地聆听INotifyPropertyChanged对象中的数据绑定字段,但ColorAnimation意味着控件的所有框架都不会被正确捕获。

回答

1

你可以挂钩到由WPF“困难的方式”使用的d3d。但是,既然你正在直接从你的C#代码中寻找一些直接的方法,我碰到了一些有趣的东西。

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

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

免责声明:万万没有尝试一下,我最后一次驾驶的编译器是很长一段时间ago- :)

(威尔,感谢您的XSplit测试你的贡献)