public static T?SelfOrVisualAncestor <T>(this IVisual visual) where T : class { if (visual is T t) { return(t); } return(visual.FindAncestorOfType <T>()); }
public static LightDismissOverlayLayer? GetLightDismissOverlayLayer(IVisual visual) { visual = visual ?? throw new ArgumentNullException(nameof(visual)); VisualLayerManager? manager; if (visual is TopLevel topLevel) { manager = topLevel.GetTemplateChildren() .OfType<VisualLayerManager>() .FirstOrDefault(); } else { manager = visual.FindAncestorOfType<VisualLayerManager>(); } return manager?.LightDismissOverlayLayer; }
IInputElement GetNextCapture(IVisual parent) { return(parent as IInputElement ?? parent.FindAncestorOfType <IInputElement>()); }
public static AdornerLayer?GetAdornerLayer(IVisual visual) { return(visual.FindAncestorOfType <VisualLayerManager>()?.AdornerLayer); }