关闭/删除选项卡项WPF

我在窗口中有一个选项卡控件。 选项卡都有简单的上下文菜单(应该允许用户关闭它们)。 但是,当我点击关闭时,没有任何反应。

这是事件处理程序

void closeTab_Click(object sender, RoutedEventArgs e) { Tabs.Items.Remove((MenuItem)sender); } 

我已经四处查看关闭标签,但我找到的文章都没有详细介绍如何关闭标签。

新问题:

 void closeTab_Click(object sender, RoutedEventArgs e) { MenuItem close = (MenuItem)sender; Tabs.Items.Remove(Convert.ToInt32(close.Name.Remove(0,3))); } 

上下文菜单项因此命名:

 Name = "Tab" + Tabs.Items.Count.ToString(), 

它什么都没做

菜单项不是选项卡。 您无法从TabControl删除它。 您需要对MenuItem所属的选项卡的引用。 这可以通过各种方式完成。


我看到你在那里用名称和字符串操作尝试了一些相当hacky的东西,这里将是一个更干净的方法,不需要任何:

 var target = (FrameworkElement)sender; while (target is ContextMenu == false) target = (FrameworkElement)target.Parent; var tabItem = (target as ContextMenu).PlacementTarget; Tabs.Items.Remove(tabItem); 

这将获取父级,直到它找到ContextMenu并从PlacementTarget获取TabItem