Событие щелчка элемента вкладки «Свободная лента» - PullRequest
1 голос
/ 16 мая 2011

Я использую Fluent Ribbon и застрял с этой проблемой.Я добавил некоторые элементы вкладки ленты и хотел выполнить что-то, если пользователь нажимает на них

<Fluent:RibbonTabItem Name="TabItem" MouseLeftButtonDown="TabItem_MouseLeftButtonDown">
    <Fluent:RibbonGroupBox Header="">
        <Fluent:Button/>
        <Fluent:Button/>
    </Fluent:RibbonGroupBox>
    <Fluent:RibbonGroupBox Header="">
        <Fluent:Button Name="General" Header="General" Click="General_Click" />
    </Fluent:RibbonGroupBox>
</Fluent:RibbonTabItem>

Это упрощенная часть кода ... однако, если я нажимаю на кнопку «Общие», событие click срабатываеткак и ожидалось, но если я щелкну на вкладке ленты ничего не произойдетВот оба обработчика событий

 private void TabItem_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
    {
        //some code        
    }

 private void General_Click(object sender, RoutedEventArgs e)
    {
        //more code           
    }

Кто-нибудь знает, как вызвать это событие?

Ответы [ 2 ]

2 голосов
/ 17 мая 2012

Это проще, чем вы думаете: у класса Ribbon есть событие SelectedTabChanged.

Он запускается дважды каждый раз, когда вы меняете вкладку:

  • в первый раз System.Windows.Controls.SelectionChangedEventArgs содержит старую вкладку в RemovedItems
  • во второй раз он содержит новую вкладку в AddedItems.

Оба эти свойства являются object[].

Просто найдите его в окне свойств или позвольте IntelliSense найти его для вас;)

1 голос
/ 08 июня 2011

Попробуйте событие SelectionChanged для объекта ленты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...