Pourrait en grande partie résoudre ce problème maintenant. Avec l'aide de quelques méthodes d'extension de la boîte à outils Silverlight, nous pouvons trouver la ScrollBar
verticale intérieure pour toute FrameworkElement
par
Scrollbar myScrollBar = myContainerElement.GetVisualDescendants()
.OfType<ScrollBar>()
.Where(foundScrollBar => foundScrollBar.Orientation == Orientation.Vertical)
.FirstOrDefault();
On peut alors joindre à ses événements comme Scroll
ou ValueChanged
.
Ensuite, il y a une autre méthode d'extension utile Toolkit nous pouvons utiliser:
Rect? rect = myElement.GetBoundsRelativeTo(myViewportElement);
if (rect.HasValue)
{
if (rect.Value.Top <= myViewportElement.ActualHeight)
{
// do some stuff
}
}
Merci, mais il ne suffit pas pour moi malheureusement. : -/... Lorsque les contrôles sont à l'intérieur des panneaux/scrollviewers, les événements 'Loaded' se déclenchent instantanément, à moins que j'utilise un VirtualizingStackPanel ou similaire, que je ne peux pas utiliser car j'ai besoin d'une mise en page plus sophistiquée. désactive le défilement jusqu'au point d'inutilité dans mon cas. – herzmeister
@herzmeister - Désolé, cela ne fonctionne pas pour vous. Je ne peux pas penser à autre chose pour le moment. – ChrisF