Control
在 Silverlight 中,如果 a (或 any FrameworkElement
)已滚动到视口中并且现在可见,是否有任何方法可以获取通知事件?
我想实现类似Lazy Load Images jQuery Plugin的东西。
Control
在 Silverlight 中,如果 a (或 any FrameworkElement
)已滚动到视口中并且现在可见,是否有任何方法可以获取通知事件?
我想实现类似Lazy Load Images jQuery Plugin的东西。
现在可以在很大程度上解决这个问题。借助 Silverlight Toolkit 的一些扩展方法,我们ScrollBar
可以FrameworkElement
通过
Scrollbar myScrollBar = myContainerElement.GetVisualDescendants()
.OfType<ScrollBar>()
.Where(foundScrollBar => foundScrollBar.Orientation == Orientation.Vertical)
.FirstOrDefault();
然后我们可以附加到它的事件上,比如Scroll
or ValueChanged
。
然后我们可以使用另一种有用的 Toolkit 扩展方法:
Rect? rect = myElement.GetBoundsRelativeTo(myViewportElement);
if (rect.HasValue)
{
if (rect.Value.Top <= myViewportElement.ActualHeight)
{
// do some stuff
}
}
这篇2009 年 10 月的Silverlight 论坛帖子讨论了 Silverlight 中缺少“VisibilityChanged”事件,并提出了使用“Loaded”事件的解决方案:
Loaded 事件通常是开始检索数据的好地方。
使用选项卡控件,在用户导航到该元素所在的选项卡之前,不会引发选项卡上元素的 Loaded 事件。
我知道这与您的情况并不严格相似,但可能值得尝试看看它是否适用于 a Control
or FrameworkElement
。