2011-07-07 98 views
1

如何訪問silverlight中滾動條末端的箭頭按鈕?他們是否可以通過滾動欄類別或其他方式訪問按鈕控件?從滾動條按鈕獲取事件?

我需要知道這種情況的原因是,當有人點擊其中一個箭頭按鈕,我可以運行一些自定義功能的滾動條

回答

0

解決了這個問題,像這樣:

foreach(var o in horizontalBar.GetVisualDescendants()) 
      { 
       if(o is RepeatButton) 
       { 
        //set call back based on the name of the repeatbutton 
       } 
} 
2

如果你需要知道什麼按鈕,滾動條被點擊就可以可以訪問通過的ScrollBar

比如我有一個textblock和每次點擊一個簡單的滾動條ValueChanged財產,被點擊的textblock顯示的按鈕。

<Grid x:Name="LayoutRoot" Background="White"> 
    <ScrollBar Height="200" Orientation="Vertical" Width="20" ValueChanged="ScrollBar_ValueChanged" /> 
    <TextBlock Height="23" HorizontalAlignment="Left" Margin="150,21,0,0" Name="textBlock1" Text="" Width="100" VerticalAlignment="Top" /> 
</Grid> 

和後面的代碼將

private void ScrollBar_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e) 
     { 
      if (e.NewValue > e.OldValue) 
       textBlock1.Text = "Down Arrow Clicked"; 
      else 
       textBlock1.Text = "Up Arrow Clicked"; 
     } 
+0

如果有人拖動棒替代上的按鈕點擊? – tweetypi

+0

對不起,延遲應對。當用戶拖動滾動條時,它工作得很好。 – Jack7