<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Class="ScrollViewer_Methods.Window1" Title="ScrollViewer IScrollInfo Sample" Loaded="onLoad"> <DockPanel> <TextBlock DockPanel.Dock="Top" FontSize="20" FontWeight="Bold" Margin="10">IScrollInfo Interface Methods</TextBlock> <StackPanel DockPanel.Dock="Left" Width="150"> <Button Click="spLineUp">Adjust Line Up</Button> <Button Click="spLineDown">Adjust Line Down</Button> <Button Click="spLineRight">Adjust Line Right</Button> <Button Click="spLineLeft">Adjust Line Left</Button> <Button Click="spPageUp">Adjust Page Up</Button> <Button Click="spPageDown">Adjust Page Down</Button> <Button Click="spPageRight">Adjust Page Right</Button> <Button Click="spPageLeft">Adjust Page Left</Button> </StackPanel> <Border BorderBrush="Black" Background="White" BorderThickness="2" Width="500" Height="500"> <ScrollViewer Name="sv1" CanContentScroll="True" VerticalScrollBarVisibility="Visible" HorizontalScrollBarVisibility="Visible"> <StackPanel Name="sp1"> <Rectangle Width="700" Height="500" Fill="Green"/> <TextBlock>Rectangle 3</TextBlock> </StackPanel> </ScrollViewer> </Border> </DockPanel> </Window> //File:Window.xaml.cs using System; using System.Windows; using System.Windows.Controls; using System.Windows.Controls.Primitives; using System.Windows.Documents; using System.Windows.Navigation; using System.Text; namespace ScrollViewer_Methods { public partial class Window1 : Window { private void onLoad(object sender, System.EventArgs e) { ((IScrollInfo)sp1).CanVerticallyScroll = true; ((IScrollInfo)sp1).CanHorizontallyScroll = true; ((IScrollInfo)sp1).ScrollOwner = sv1; } private void spLineUp(object sender, RoutedEventArgs e) { ((IScrollInfo)sp1).LineUp(); } private void spLineDown(object sender, RoutedEventArgs e) { ((IScrollInfo)sp1).LineDown(); } private void spLineRight(object sender, RoutedEventArgs e) { ((IScrollInfo)sp1).LineRight(); } private void spLineLeft(object sender, RoutedEventArgs e) { ((IScrollInfo)sp1).LineLeft(); } private void spPageUp(object sender, RoutedEventArgs e) { ((IScrollInfo)sp1).PageUp(); } private void spPageDown(object sender, RoutedEventArgs e) { ((IScrollInfo)sp1).PageDown(); } private void spPageRight(object sender, RoutedEventArgs e) { ((IScrollInfo)sp1).PageRight(); } private void spPageLeft(object sender, RoutedEventArgs e) { ((IScrollInfo)sp1).PageLeft(); } } }