wpf – 为什么CompositionTarget.Rendering采用EventArgs而不是RenderingEventArgs?

wpf – 为什么CompositionTarget.Rendering采用EventArgs而不是RenderingEventArgs?,第1张

概述CompositionTarget.Rendering事件是一个简单的老EventHandler,有一个简单的老EventArgs.然而,在现实生活中,它显然总是获得 RenderingEventArgs的一个实例.所以你的事件处理程序必须首先投射EventArgs,以获得有用的信息. 为什么不是EventHandler< RenderingEventArgs>的事件,所以我们可以更容易地得到这些 CompositionTarget.Rendering事件是一个简单的老EventHandler,有一个简单的老EventArgs.然而,在现实生活中,它显然总是获得 RenderingEventArgs的一个实例.所以你的事件处理程序必须首先投射EventArgs,以获得有用的信息.

为什么不是EventHandler< RenderingEventArgs>的事件,所以我们可以更容易地得到这些参数(更重要的是,所以甚至可以知道这些参数)?为什么微软选择给这个事件错了签名?

我想知道向后兼容性 – 有没有RenderingEventArgs不存在的版本? – 但似乎并非如此.根据MSDN,RenderingEventArgs和CompositionTarget都是在两个平台的同一版本中引入的 – 在WPF中都加入了.NET 3.0;在Silverlight中,都加入了Silverlight 3.0.

如果它提供任何提示,我碰到一个旧的discussion thread,有人说:“代表使用EventArgs,因为有一些表现赢得编组通过这样做.如果有人可以解释什么样的表现胜利,我会愿意接受这个答案.

解决方法 编组胜利可能是一个低级别的内存管理事情.因为EventArgs是事件最常见的参数形式,因此在插件的低级别事件处理实现中可能会有预先分配的缓冲区.甚至可能只是在某些平台上获胜,只能在强化渲染中获胜.

在最新的SL版本中,渲染速度已经得到显着改善,我怀疑这是正在推动这样做的调整.

由于实施而导致界面受损,这是一个痛苦,但如果胜利是重大的话,这是一个公平的权衡.此外,在这种情况下,功能没有实质的损失,因为它很容易投射并获取底层数据.

总结

以上是内存溢出为你收集整理的wpf – 为什么CompositionTarget.Rendering采用EventArgs而不是RenderingEventArgs?全部内容,希望文章能够帮你解决wpf – 为什么CompositionTarget.Rendering采用EventArgs而不是RenderingEventArgs?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1003565.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存