private IntPtr GetParentWindow(CoreUIParent uiParent)
        {
#if WINDOWS_APP
            // On UWP there is no need for a window handle
            return(IntPtr.Zero);
#endif

#if DESKTOP || NET5_WIN // net core doesn't reference WinForms
            if (uiParent?.OwnerWindow is IWin32Window window)
            {
                _logger.Info("Owner window specified as IWin32Window.");
                return(window.Handle);
            }
#endif

#if DESKTOP || NET5_WIN || NET_CORE
            if (uiParent?.OwnerWindow is IntPtr ptr)
            {
                _logger.Info("Owner window specified as IntPtr.");
                return(ptr);
            }

            IntPtr foregroundWindow = WindowsNativeMethods.GetForegroundWindow();
            return(foregroundWindow);
#endif
        }
Пример #2
0
        private IntPtr GetParentWindow(CoreUIParent uiParent)
        {
#if WINDOWS_APP
            // On UWP there is no need for a window handle
            return(IntPtr.Zero);
#else
            if (uiParent?.OwnerWindow is IntPtr ptr)
            {
                _logger.Info("Owner window specified as IntPtr.");
                return(ptr);
            }

            if (uiParent?.OwnerWindow is IWin32Window window)
            {
                _logger.Info("Owner window specified as IWin32Window.");
                return(window.Handle);
            }

            return(WindowsNativeMethods.GetForegroundWindow());
#endif
        }