我有一个通过模拟击键来自动控制其他Windows应用程序的项目。为了模拟按键,我需要将该应用程序的窗口置于最前面。进行时,您可以在屏幕上看到整个过程。
但是,我想要一个假的全屏屏幕来掩盖它。如果可能的话,我还想在假全屏上显示某些内容,例如进度条。
任何建议都会有所帮助。谢谢
答案 0 :(得分:0)
您想要实现的是使主表单以对的“全屏窗口”模式显示?
因此,您需要将窗口大小设置为屏幕大小。
在WPF类中,可以采用以下方法:
this.Height = System.Windows.SystemParameters.PrimaryScreenHeight;
this.Width = System.Windows.SystemParameters.PrimaryScreenWidth;
或
this.WindowState = WindowState.Maximized;
要使窗口向前移动,您还可以使用:
myWindow.Activate();
或
this.TopMost = true;
我希望这会有所帮助。
答案 1 :(得分:0)
为防止其他窗口在停用时与您的窗口重叠,您可以添加方法,我将在WPF Always On Top(我以前使用过,并且对我来说效果很好)上使用该解决方案{1}}窗口事件:
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();
...
是包含进度栏或您希望用户看到的任何内容的窗口。