2011-05-16 64 views
1

我正在使用流畅功能区并陷入了这个问题。我添加了一些功能区选项卡的项目,并希望如果用户点击他们流利的功能区选项卡项目单击事件

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

有谁知道如何触发此事件?

+0

我要去张贴以防万一有人有同样的问题,一种解决方法。我刚才说了'Loaded'事件到组合框中的第一个按钮,所以当按钮被显示时代码被执行......不知何故脏,但它的作品... – 2011-05-16 16:44:19

回答

2

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

两次,每次它被激发您更改标签:

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

这两个属性都是object[]

只要看看它在属性窗口或让智能感知帮您找到它;)

1

在Ribbon对象上尝试SelectionChanged事件。

相关问题