示例#1
0
 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;
        }
示例#3
0
 IInputElement GetNextCapture(IVisual parent)
 {
     return(parent as IInputElement ?? parent.FindAncestorOfType <IInputElement>());
 }
示例#4
0
 public static AdornerLayer?GetAdornerLayer(IVisual visual)
 {
     return(visual.FindAncestorOfType <VisualLayerManager>()?.AdornerLayer);
 }