gpt4 book ai didi

c# - 关闭/删除选项卡项 WPF

转载 作者:行者123 更新时间:2023-11-30 22:35:53 25 4
gpt4 key购买 nike

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

这是事件处理程序

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 所属的选项卡。这可以通过多种方式完成。


我看到你在那里尝试了一些关于名称和字符串操作的相当棘手的事情,这里将是一个更干净的方法,不需要任何这些:

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

关于c# - 关闭/删除选项卡项 WPF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7272084/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com