[Silverlight] 在Silverlight 中控制卷軸
2010/10/13
為什麼要控制卷軸 ?!
其實是因為一些滑動的效果的時候會用到..
所以會由自己來去控制卷軸…
下面是一個很簡單的範例..
我把垂直的卷軸顯示給藏起來…
然後透過..自訂的按鈕去控制卷軸往上還是往下…
先敘述一下畫面配置..
敘述一下.. stkpnlImage 是一個StackPanel 物件.. 因為有要卷軸效果..所以外面包覆了一個ScrollViewer
至於按鈕就是要控制向上還是向下…
看一下XAML Code :
<UserControl x:Class="StackPanelDemo1.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" d:DesignHeight="600" d:DesignWidth="400"> <Grid x:Name="LayoutRoot" Background="White" Loaded="LayoutRoot_Loaded"> <ScrollViewer Name="scrollViewer1" VerticalScrollBarVisibility="Hidden" VerticalAlignment="Top" HorizontalAlignment="Left" Height="600" Width="251" Margin="0,0,148,0"> <StackPanel Name="stkpnlImage" /> </ScrollViewer> <Button Content="往上" Height="23" HorizontalAlignment="Left" Margin="286,136,0,0" Name="btnUp" VerticalAlignment="Top" Width="75" FontSize="14" Click="btnUp_Click" /> <Button Content="往下" FontSize="14" Height="23" HorizontalAlignment="Left" Margin="286,231,0,0" Name="btnDown" VerticalAlignment="Top" Width="75" Click="btnDown_Click" /> </Grid> </UserControl>
其中 我把scrollViewer1 的 VerticalScrollBarVisibility="Hidden" 這樣就不會出現卷軸..
一開始 因為 stkpnlImage 沒有東西 所以我們得先放一些假資料..
我在LayoutRoot 的 Loaded 中加入 LayoutRoot_Loaded 中寫放進30張圖片..
private void LayoutRoot_Loaded(object sender, System.Windows.RoutedEventArgs e) { for(int i=0;i<=30;i++) { Image imgItem = new Image(); imgItem.Width = 100; imgItem.Height = 100; //如果是雙數就放另外一張圖 if(i%2==0) { imgItem.Source = (new BitmapImage(new Uri("a.jpg", UriKind.Relative))); } else { imgItem.Source = (new BitmapImage(new Uri("b.jpg", UriKind.Relative))); } this.stkpnlImage.Children.Add(imgItem); } }
這樣執行起來就會有圖摟..^^
再來我在 btnUp 裡面的Click 事件 Code 如下..
private void btnUp_Click(object sender, System.Windows.RoutedEventArgs e) { scrollViewer1.ScrollToVerticalOffset(scrollViewer1.VerticalOffset - 20); }
btnDown :
private void btnDown_Click(object sender, System.Windows.RoutedEventArgs e) { scrollViewer1.ScrollToVerticalOffset(scrollViewer1.VerticalOffset+20); }
重點就在於 你可以去呼叫 ScrollToVerticalOffset 這 method 來設定他垂直捲動的位置到哪..
我把他設定成為 現在的位置加上20 …
所以同理可證 ScrollToHorizontalOffset() 這可以去設定 水平的卷軸位置…
預覽:
檔案下載:
讚一下:
標籤:
Silverlight
|
This entry was posted on 下午4:10
and is filed under
Silverlight
.
You can follow any responses to this entry through
the RSS 2.0 feed.
You can leave a response,
or trackback from your own site.
訂閱:
張貼留言 (Atom)
0 意見:
張貼留言