Ich möchte über Änderungen an der VerticalOffset der vertikalen Bildlaufleiste eines ScrollViewer benachrichtigt werden. In WPF gibt es ein ScrollViewer.ScrollChanged-Ereignis, aber in Silverlight 3 fehlt dies. Kennt jemand eine Problemumgehung?Silverlight 3 fehlt ScrollViewer.ScrollChanged Ereignisumgehung?
9
A
Antwort
6
Sie Element verwenden können, verbindlich, hier ist ein Daft Beispiel: -
<Grid x:Name="LayoutRoot" Background="White">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100" />
<ColumnDefinition Width="100" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="60" />
</Grid.RowDefinitions>
<ScrollViewer x:Name="ScrollSource">
<StackPanel>
<TextBlock>Hello</TextBlock>
<TextBlock>World</TextBlock>
<TextBlock>Yasso</TextBlock>
<TextBlock>Kosmos</TextBlock>
</StackPanel>
</ScrollViewer>
<TextBox Grid.Column="1" Text="{Binding VerticalOffset, ElementName=ScrollSource}" />
</Grid>
Als ScrollViewer
ist die Text-Eigenschaft des TextBox gescrollt wird von dem neuen Wert beraten.
3
Es gibt eine einfachere Lösung, die auf den Silverlight-Foren vorgestellt:
protected override Size ArrangeOverride(Size finalSize)
{
// Assumes you only have one scrollviewer (e.g. fullscreen ScrollViewer)
var scrollbar = LayoutRoot.GetVisualDescendants()
.OfType<ScrollBar>()
.FirstOrDefault();
if (scrollbar != null)
scrollbar.Scroll += ScrollBarScroll;
return base.ArrangeOverride(finalSize);
}
private void ScrollBarScroll(object sender, ScrollEventArgs e)
{
}
1
hier ist eine gute Verbindung, die ich gefunden, während googeln, es hat auch einige Beispiel-Code, die ich nicht ausgecheckt haben.
http://dotplusnet.blogspot.com/2010/05/scrollviewer-scroll-change-event-in.html
Verwandte Themen
- 1. Silverlight InlineCollection.Add (InlineUIContainer) fehlt?
- 2. Was fehlt noch an Silverlight?
- 3. Silverlight 3 Hosting
- 4. Silverlight 3 Offline-Modus
- 5. Silverlight 3 Navigation
- 6. Alexandria/Silverlight 3 Funktionsliste?
- 7. Silverlight 3 - 3D Engine
- 8. Silverlight (3) Best Practices
- 9. Silverlight 3 oob Fensterrahmen
- 10. ServiceReferences.ClientConfig fehlt - WCF mit Silverlight auf Azure
- 11. CakePHP 3 Migration fehlt enum
- 12. argparse fehlt in python 3
- 13. Slim.php fehlt Slim 3.x
- 14. Silverlight 3 aus den Browser-Updates
- 15. Existiert XamlWriter in Silverlight 3?
- 16. Silverlight 3: Größenmodell/100% Größe
- 17. Silverlight 3 und animiertes gif
- 18. Silverlight 3 - Kein Browser HtmlPage.Window.Navigate
- 19. Silverlight 3 Alternative zu FileVersionInfo.GetVersionInfo
- 20. Silverlight 3 BETA DataGrid-Gruppierung
- 21. Offline-Datenbankzugriff unter Silverlight-3
- 22. Clipboard-Unterstützung in Silverlight 3
- 23. Silverlight 3 Dataform Best Practices
- 24. Silverlight 3 Combobox Ui Virtualisierung
- 25. Silverlight 3 RIA-Services-Referenz
- 26. Debuggen Silverlight 3 in VS2008 nach VS2010 \ Silverlight 4 installiert
- 27. Problem mit Silverlight 3 Plugin auf FireFox
- 28. Silverlight 3 Checkbox Listbox Bug beim Scrollen?
- 29. Erste Laufzeit-Assemblys in Silverlight 3
- 30. Silverlight 3 out-of-browser: Hostfenstergröße einstellen?
Danke für den Tipp! Anstatt in WPF nur das ScrollChanged-Ereignis zu abonnieren, binde ich jetzt eine benutzerdefinierte Abhängigkeitseigenschaft an das VerticalOffset des Scrollviewers und verwende einen Callback für die Abhängigkeitseigenschaft, um etwas mit den geänderten Werten im Code ausführen zu können. Zumindest funktioniert es: p – eriksmith200
http://www.wintellect.com/CS/blogs/jlikness/archive/2010/05/18/making-the-scrollviewer-talk-in-silverlight-4.aspx –