WPF:查找鼠标光标是否在控件中(不一定是直接在上面)

时间:2011-05-08 05:49:36

标签: wpf tabcontrol

我有一个标签控件,右键单击标签页显示上下文菜单。 当点击名为“关闭”的菜单项时,我想关闭用户右键单击的标签项。

这是一个问题。 如果我有TabItem1和TabItem2并且选择了TabItem1。然后右键单击TabItem2并单击“关闭”。此时,TabItem1仍然是选中的项目,但我想关闭TabItem2,我不知道如何获取TabItem2。

如果我可以得到光标在控件中(而不是直接在b / c上,它直接在我添加到选项卡项标题的TextBlock上),我将能够找到控件并从Tabcontrol中删除它。项目

任何帮助都将不胜感激。

由于

1 个答案:

答案 0 :(得分:0)

使用ContextMenuOpening事件确定打开上下文菜单的选项卡,然后无需担心鼠标:

<TabControl TabItem.ContextMenuOpening="ContextMenu_ContextMenuOpening">
    <TabControl.Resources>
        <ContextMenu x:Key="context_menu"  >
            <MenuItem Header="Option 1" />
            <MenuItem Header="Option 2" />
        </ContextMenu>
    </TabControl.Resources>

    <TabItem x:Name="tab1" Header="Tab 1" Content="This is Tab 1" ContextMenu="{StaticResource context_menu}" />
    <TabItem x:Name="tab2" Header="Tab 2" Content="This is Tab 2" ContextMenu="{StaticResource context_menu}" />
</TabControl>

事件处理程序:

private void ContextMenu_ContextMenuOpening(object sender, ContextMenuEventArgs e)
{
    //get the tab item:
    TabItem bob = e.Source as TabItem;
}