コード例 #1
0
        internal static UIEdgeInsets GetSafeAreaInsetsForWindow(this UIApplication application)
        {
            UIEdgeInsets safeAreaInsets;

            if (!OperatingSystem.IsIOSVersionAtLeast(11))
            {
                safeAreaInsets = new UIEdgeInsets(UIApplication.SharedApplication.StatusBarFrame.Size.Height, 0, 0, 0);
            }
            else if (application.GetKeyWindow() is UIWindow keyWindow)
            {
                safeAreaInsets = keyWindow.SafeAreaInsets;
            }
#pragma warning disable CA1416 // TODO: 'UIApplication.Windows' is unsupported on: 'ios' 15.0 and later.
            else if (application.Windows.Length > 0)
            {
                safeAreaInsets = application.Windows[0].SafeAreaInsets;
            }
#pragma warning restore CA1416
            else
            {
                safeAreaInsets = UIEdgeInsets.Zero;
            }

            return(safeAreaInsets);
        }
コード例 #2
0
        public static IWindow?GetWindow(this UIApplication application)
        {
            if (MauiUIApplicationDelegate.Current.VirtualWindow != null)
            {
                return(MauiUIApplicationDelegate.Current.VirtualWindow);
            }

            var nativeWindow = application.GetKeyWindow();

            foreach (var window in MauiUIApplicationDelegate.Current.Application.Windows)
            {
                if (window?.Handler?.NativeView is UIWindow win && win == nativeWindow)
                {
                    return(window);
                }
            }

            return(null);
        }
コード例 #3
0
        internal static UIEdgeInsets GetSafeAreaInsetsForWindow(this UIApplication application)
        {
            UIEdgeInsets safeAreaInsets;

            if (!OperatingSystem.IsIOSVersionAtLeast(11))
            {
                safeAreaInsets = new UIEdgeInsets(UIApplication.SharedApplication.StatusBarFrame.Size.Height, 0, 0, 0);
            }
            else if (application.GetKeyWindow() is UIWindow keyWindow)
            {
                safeAreaInsets = keyWindow.SafeAreaInsets;
            }
            else if (application.Windows.Length > 0)
            {
                safeAreaInsets = application.Windows[0].SafeAreaInsets;
            }
            else
            {
                safeAreaInsets = UIEdgeInsets.Zero;
            }

            return(safeAreaInsets);
        }
コード例 #4
0
 public static IWindow?GetWindow(this UIApplication application) =>
 application.GetKeyWindow().GetWindow();