我有一个WPF项目,其中显示了许多小型控件“小部件”(在某些情况下,这些控件可能总计超过数千个)
我现在希望添加一个小的正在进行中的动画,以滚动浏览文本字段之一,以在各种不同的值之间交换。所以我需要添加某种计时器来触发动画(或更改值,然后触发动画)
由于实例太多,我不确定是否要向控件类中添加DispatchTimer的更简洁的方法(因此控件的每个实例都有一个DispatchTimer实例),或者,如果这样做有一定的性能开销,则可以使用DispatchTimer的某个静态实例或注入的单个实例,然后只需在每个控件上调用一个方法即可。
我在这里总是非常小心,因为在Winform时代,句柄,用户对象等总是受到限制。
看着Source,我确实看到在第2982行创建了一个HandleRef
。
SafeNativeMethods.SetTimer(
new HandleRef(this, _window.Value.Handle),
TIMERID_TIMERS,
delta);
但是,HandlRef似乎仅仅是一个简单的包装器。
我还没有检查所有源代码,想知道是否有人对此有所了解?
在此先感谢您的帮助