Control
Silverlightで、 (またはいずれかFrameworkElement
)がビューポートにスクロールされて表示された場合に通知イベントを取得する方法はありますか?
Lazy LoadImagesjQueryプラグインのようなものを実装したいと思います。
Control
Silverlightで、 (またはいずれかFrameworkElement
)がビューポートにスクロールされて表示された場合に通知イベントを取得する方法はありますか?
Lazy LoadImagesjQueryプラグインのようなものを実装したいと思います。
今ではこれを大部分解決できます。ScrollBar
Silverlight Toolkitのいくつかの拡張メソッドの助けを借りて、次のいずれかの内部垂直をFrameworkElement
見つけることができます。
Scrollbar myScrollBar = myContainerElement.GetVisualDescendants()
.OfType<ScrollBar>()
.Where(foundScrollBar => foundScrollBar.Orientation == Orientation.Vertical)
.FirstOrDefault();
Scroll
次に、またはのようなイベントにアタッチできます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イベントは発生しません。
私はそれがあなたの状況と厳密に類似していないことを知っていますが、それがまたはで機能するかどうかを確認する価値があるかもしれませControl
んFrameworkElement
。