Last week I was working on a image scroll-er slide show using silverlight listbox control and it worked great and I thought I’d share this.
Click here to view the live demo (images may take a while to load)
Click here to download the article
If you find the Image Scroller code library useful, please consider donating
Xaml C# Code
public class ImageScroller { public string Url { get; set; } } public partial class ImageGallery : UserControl { int index = 0; void StartSlideShow() { DispatcherTimer timer = new DispatcherTimer(); timer.Interval = TimeSpan.FromMilliseconds(2500); //delayed for 2.5 seconds timer.Tick += (sender, e) => { lbScrollGallery.ScrollIntoView(lbScrollGallery.Items[index]); //scroll to the current item lbScrollGallery.SelectedIndex = index; //highlight the selected item in the list box scroller ImageScroller item = (ImageScroller)lbScrollGallery.Items[index]; // getting the current item imgPreview.Source = new BitmapImage(new Uri(item.Url, UriKind.Relative)); if (index < lbScrollGallery.Items.Count - 1) { index++; } else { lbScrollGallery.ScrollIntoView(lbScrollGallery.Items[0]); //scroll to the first item index = 0; //reset the index when it reaches to the last item } }; timer.Start(); } public ImageGallery() { InitializeComponent(); LoadImages(); StartSlideShow(); } void LoadImages() { lbScrollGallery.ItemsSource = new List<ImageScroller> { new ImageScroller { Url = "images/Chrysanthemum.jpg" }, new ImageScroller { Url = "images/Desert.jpg" }, new ImageScroller { Url = "images/Hydrangeas.jpg" }, new ImageScroller { Url = "images/Jellyfish.jpg" }, new ImageScroller { Url = "images/Koala.jpg" }, new ImageScroller { Url = "images/Lighthouse.jpg" }, new ImageScroller { Url = "images/Penguins.jpg" }, new ImageScroller { Url = "images/Tulips.jpg" } }; imgPreview.Source = new BitmapImage(new Uri("images/Chrysanthemum.jpg", UriKind.Relative)); //load default image while page loads } void ScrollerSelectionChanged(object sender, SelectionChangedEventArgs e) { ListBox listbox = (ListBox)sender; ImageScroller item = (ImageScroller)listbox.SelectedItem; if(item != null && ! string.IsNullOrEmpty(item.Url)) { imgPreview.Source = new BitmapImage(new Uri(item.Url, UriKind.Relative)); index = listbox.SelectedIndex; lbScrollGallery.ScrollIntoView(lbScrollGallery.Items[index]); } } }
Hope this help and If you have any comments, please feel free to write your feedback.
Click here to view the live demo (images may take a while to load)
You can download the entire article from here
If you find the Image Scroller code library useful, please consider donating
Thanks
Deepu