WPF共享EventTrigger

时间:2016-03-23 18:29:29

标签: wpf

我有一个带有TabControl的窗口,其中包含两个TabItems(我们称之为“A”和“B”)。选项卡A有几个ContextMenus:我希望每个MenuItem都将TabItem更改为选项卡B.理想情况下,我会编写一个MenuItem模板,在选择MenuItem时切换选项卡。这可能吗?

编辑: 我最终使用的解决方案依赖于ContextMenus中的MenuItems,它源自定义click事件和处理程序的基本样式:

<Window.Resources>
   <ResourceDictionary>
      <Style TargetType="MenuItem" x:Key="ContextMenuItemBase">
         ... (various stylings)
         <EventSetter Event="Click" Handler="MenuItem_Clicked"/>
      </Style>
   </ResourceDictionary>
</Window.Resources>

我将要切换到的标签控件和标签项命名为:

<TabControl x:Name="tcTabs">
...
   <TabItem Header="Results" x:Name="tiResultsTab">

然后在MainWindow.xaml.cs代码隐藏文件中:

private void MenuItem_Clicked(object sender, RoutedEventArgs e)
{
   tcTabs.SelectedItem = tiResultsTab;
}

1 个答案:

答案 0 :(得分:0)

订阅菜单选择活动。在处理操作的方法内部,然后通过方法参数提取哪个菜单,该方法参数标识Sender(可能用另一个标签参考标记Tag属性(?))。然后更改为相应的目标选项卡。