WPF Fake Full Screen - PullRequest
       2

WPF Fake Full Screen

0 голосов
/ 23 мая 2019

У меня есть проект, который автоматизирует / контролирует другие приложения Windows, имитируя нажатия клавиш.Чтобы имитировать нажатия клавиш, мне нужно вывести окно этого приложения на передний план.Когда это происходит, вы можете увидеть весь процесс на экране.

Однако я хочу иметь полный экран, чтобы скрыть это.Если это возможно, я также хотел бы отображать что-то на фальшивом полноэкранном режиме, например индикатор выполнения.

Любое предложение будет полезно.Спасибо

Ответы [ 2 ]

0 голосов
/ 23 мая 2019

Чтобы другие окна не перекрывали ваше окно, когда оно деактивировано, вы можете добавить метод, я бы использовал решение в WPF Always On Top (я использовал его раньше, и он работал хорошо для меня ), к событию Deactivated окна:

private void Window_Deactivated(object sender, EventArgs e)
{
    Window window = (Window)sender;
    window.Topmost = true;
}

Если вы хотите отображать индикатор выполнения в полноэкранном окне во время выполнения операции, вы можете сделать что-то вроде:

private Window CreateFullScreenLoadingBar()
{
    Window fullscreenWindow = new YourLoadingBarWindow();

    fullscreenWindow.WindowStyle = WindowStyle.None;
    fullscreenWindow.WindowState = WindowState.Maximized;
    fullscreenWindow.ResizeMode = ResizeMode.NoResize;
    fullscreenWindow.WindowStartupLocation = WindowStartupLocation.CenterOwner;

    fullscreenWindow.Deactivated += delegate (object sender, EventArgs e)
    {
        Window window = (Window)sender;
        window.Topmost = true;
    };            
}

Использование:

...
Window loadingBar = CreateFullScreenLoadingBar();
fullscreenWindow.Show();
fullscreenWindow.Activate();

// Your code

loadingBar.Close();
...

Где YourLoadingBarWindow - это окно, содержащее индикатор выполнения или все, что вы хотите, чтобы пользователь видел.

0 голосов
/ 23 мая 2019

Чего вы хотите добиться, так это чтобы ваша основная форма отображалась в правильном «оконном полноэкранном» режиме?

Итак, для этого вам нужно установить размер окна в соответствии с размером экрана.

В вашем классе WPF это можно сделать следующим образом:

this.Height = System.Windows.SystemParameters.PrimaryScreenHeight;
this.Width = System.Windows.SystemParameters.PrimaryScreenWidth;

Или

this.WindowState = WindowState.Maximized;

Чтобы вывести окно вперед, вы также можете использовать:

myWindow.Activate();

или

this.TopMost = true;

Надеюсь, это будет полезно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...