1

我正在使用 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>

这是代码的简化部分......但是,如果我单击“常规”按钮,则单击事件会按预期触发,但是如果我单击功能区选项卡项,则不会发生任何事情。这是两个事件处理程序

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

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

有谁知道如何触发这个事件?

4

2 回答 2

2

它比你想象的要简单:Ribbon类有一个SelectedTabChanged事件。

每次更改选项卡时都会触发两次:

  • 第一次System.Windows.Controls.SelectionChangedEventArgs包含旧选项卡RemovedItems
  • 第二次它包含AddedItems.

这两个属性都是object[].

只需在属性窗口中查找它或让 IntelliSense 为您找到它;)

于 2012-05-17T15:53:57.120 回答
1

在功能区对象上尝试 SelectionChanged 事件。

于 2011-06-08T04:33:14.867 回答