相关疑难解决方法(0)

在代码中获取上下文菜单的所有者

ContextMenu喜欢这样的:

<StackPanel Orientation="Horizontal">
    <StackPanel.ContextMenu>
        <ContextMenu>
            <MenuItem Header="Delete" Click="OnDeleteClicked" />
        </ContextMenu>
    </StackPanel.ContextMenu>
</StackPanel>
Run Code Online (Sandbox Code Playgroud)

我需要获得StackPanel拥有该实例的实例ContextMenu.我已经尝试过了:

private void OnDeleteClicked(object sender, System.Windows.RoutedEventArgs e)
{
    FrameworkElement parent = e.OriginalSource as FrameworkElement;

    while (!(parent is StackPanel))
    {               
        parent = (FrameworkElement)LogicalTreeHelper.GetParent(parent);
    }
}
Run Code Online (Sandbox Code Playgroud)

但是在获得ContextMenuPopup父级之后VisualTreeHelper,它变为null,与之相同,它在获取之前变为null StackPanel.有关如何做到这一点的任何想法?

谢谢!

wpf contextmenu parent

27
推荐指数
3
解决办法
2万
查看次数

标签 统计

contextmenu ×1

parent ×1

wpf ×1