PopupRoot is internal, so you cannot reference it. However, if you use LogicalTreeHelper , you can find a Popup if one exists. LogicalTreeHelper will return NULL if there is no logical parent, so you need to use it in addition to the walking visual tree using VisualTreeHelper .
Here is an example of how you can use it:
var popupRootFinder = VisualTreeHelper.GetParent((DependencyObject)your_visual_element); while (popupRootFinder != null) { var logicalRoot = LogicalTreeHelper.GetParent(popupRootFinder); if (logicalRoot is Popup) {
source share