【问题标题】:Fluent ribbon tab item click eventFluent 功能区选项卡项单击事件
【发布时间】:2011-08-26 11:43:23
【问题描述】:

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

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

【问题讨论】:

  • 我将发布一个解决方法,以防万一有人遇到同样的问题...我刚刚在组框中的第一个按钮上添加了一个 Loaded 事件,所以当按钮显示时,代码是执行...有点脏但它有效...

标签: c# wpf .net-4.0 ribbon fluent-ribbon


【解决方案1】:

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

每次更改标签时都会触发两次:

  • System.Windows.Controls.SelectionChangedEventArgs 第一次包含RemovedItems 中的旧选项卡
  • 第二次在AddedItems 中包含新标签。

这两个属性都是object[]

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2017-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-29
      • 2017-12-12
      • 1970-01-01
      相关资源
      最近更新 更多