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
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 –