Joe*_*ite 17 silverlight wpf eventargs
该CompositionTarget.Rendering事件是一个普通的旧事件处理程序,以一个普通的旧的EventArgs.但是,在现实生活中,它显然总是获得RenderingEventArgs的实例.因此,您的事件处理程序必须从转换EventArgs开始,以便从中获取有用的信息.
为什么不是类型的事件EventHandler<RenderingEventArgs>
,所以我们可以更容易地得到参数(更重要的是,我们甚至可以知道参数在那里)?为什么微软会选择给这个事件带来错误的签名?
我想知道向后兼容性 - 有没有RenderingEventArgs尚未存在的版本? - 但似乎并非如此.根据MSDN,RenderingEventArgs和CompositionTarget在两个平台上的同一版本中引入 - 在WPF中,两者都在.NET 3.0中添加; 在Silverlight中,两者都添加在Silverlight 3.0中.
如果它提供了任何类型的提示,我遇到了一个旧的讨论主题,其中有人说,"代表正在使用EventArgs,因为通过这样做,在编组方面取得了某种性能上的胜利." 如果有人可以解释可能会取得什么样的表现,我愿意接受这一点作为答案.
小智 3
编组的胜利可能是低级内存管理的事情。由于 EventArgs 是事件最常见的参数形式,因此在插件的低级事件处理实现中可能会预先分配缓冲区。它甚至可能只在某些平台上并且只有在密集渲染的情况下才是胜利。
最新的 SL 版本中的渲染速度得到了显着提高,我怀疑正是这样的调整推动了这一点。
当接口由于实现而受到影响时,这是一种痛苦,但如果胜利是重大的,那么这是一个公平的权衡。此外,在这种情况下,功能并没有真正的损失,因为转换和获取底层数据相当容易。
归档时间: |
|
查看次数: |
1012 次 |
最近记录: |