Получение событий от кнопок полосы прокрутки? - PullRequest
1 голос
/ 07 июля 2011

как получить доступ к кнопкам со стрелками на концах полос прокрутки в серебряном свете? Это кнопки управления, к которым можно получить доступ через класс полосы прокрутки или что-то еще?

Причина, по которой мне нужно это знать, заключается в том, что когда кто-то нажимает на любую из кнопок со стрелками, я могу запустить некоторые пользовательские функции на полосе прокрутки

Ответы [ 2 ]

2 голосов
/ 08 июля 2011

Если вам нужно узнать, какая кнопка на полосе прокрутки была нажата, вы можете получить к ней доступ через свойство ValueChanged ScrollBar

.

Например, у меня есть простая полоса прокрутки с textblock, и при каждом нажатии 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";
        }
1 голос
/ 11 июля 2011

Решил эту проблему так:

foreach( var o in horizontalBar.GetVisualDescendants( ) )
            {
               if(o is RepeatButton)
               {
                     //set call back based on the name of the repeatbutton
                }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...