我有一個ContextMenu
這樣的:獲取上下文菜單的所有者代碼
<StackPanel Orientation="Horizontal">
<StackPanel.ContextMenu>
<ContextMenu>
<MenuItem Header="Delete" Click="OnDeleteClicked" />
</ContextMenu>
</StackPanel.ContextMenu>
</StackPanel>
,我需要獲得擁有該ContextMenu
的StackPanel
的實例。我已經嘗試過這樣的:
private void OnDeleteClicked(object sender, System.Windows.RoutedEventArgs e)
{
FrameworkElement parent = e.OriginalSource as FrameworkElement;
while (!(parent is StackPanel))
{
parent = (FrameworkElement)LogicalTreeHelper.GetParent(parent);
}
}
但得到ContextMenu
彈出父之後,它變得無效,同時與VisualTreeHelper
,它就會獲得StackPanel
之前爲null。任何想法如何做到這一點?
謝謝!