Вот простой фрагмент C #, который даст вам всех родителей нажатой кнопки:
private void Button_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show(GetParents(sender, 0));
}
private string GetParents(Object element, int parentLevel)
{
string returnValue = String.Format("[{0}] {1}", parentLevel, element.GetType());
if (element is FrameworkElement)
{
if (((FrameworkElement) element).Parent != null)
returnValue += String.Format("{0}{1}",
Environment.NewLine, GetParents(((FrameworkElement)element).Parent, parentLevel + 1));
}
return returnValue;
}