流畅的功能区选项卡项单击事件

本文关键字:单击 事件 选项 功能区 | 更新日期: 2023-09-27 17:56:39

我正在使用流利功能区并遇到了这个问题。我添加了一些功能区选项卡项,并希望在用户单击它们时执行某些内容

<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           
    }

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

流畅的功能区选项卡项单击事件

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

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

  • System.Windows.Controls.SelectionChangedEventArgs首次包含RemovedItems中的旧选项卡
  • 第二次它包含AddedItems中的新选项卡。

这两个属性都是object[]

只需在属性窗口中查找它,或者让智能感知为您找到它;)

尝试选择功能区对象上的更改事件。