关闭/删除选项卡项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
。