WPF 两个监视器中的初始屏幕

本文关键字:屏幕 监视器 两个 WPF | 更新日期: 2023-09-27 18:34:31

我正在开发一个WPF应用程序。我正在使用两台显示器。当某些功能正在执行时,我正在使用启动屏幕在窗口上弹出。

我遇到的问题是,当我将应用程序移动到辅助监视器并开始处理功能初始屏幕时,初始屏幕仍显示在主监视器中,而不是在辅助监视器上。

对此有任何帮助吗?

WPF 两个监视器中的初始屏幕

如果

适合您,您可以尝试使用BusyIndicator,或者您可以尝试以下代码来显示启动窗口。

 void TemplateSelector_Loaded(object sender, RoutedEventArgs e)
        {
            showWin();
            Thread.Sleep(10000);

            CloseWin();
        }
        private void CloseWin()
        {
            WindowManager.Close();
        }
        Window tempWindow = new Window();
        public void showWin()
        {
            WindowManager.LaunchWindowNewThread<SplashWindow>();
        }
    }
    public class WindowManager
    {
        private static Window win;
        public static void LaunchWindowNewThread<T>() where T : Window, new()
        {
            Thread newWindowThread = new Thread(ThreadStartingPoint);
            newWindowThread.SetApartmentState(ApartmentState.STA);
            newWindowThread.IsBackground = true;
            Func<Window> f = delegate
            {
                T win = new T();
                return win;
            };
            newWindowThread.Start(f);
        }
        private static void ThreadStartingPoint(object t)
        {
            Func<Window> f = (Func<Window>)t;
            win = f();
            win.WindowStartupLocation = WindowStartupLocation.CenterScreen;
            win.Topmost = true;
            win.Show();
            Dispatcher.Run();
        }
        public static void Close()
        {
            if (win != null)
                win.Dispatcher.BeginInvokeShutdown(DispatcherPriority.Send);
        }
    }