可靠地使 WPF 应用程序全屏(覆盖任务栏)
Make WPF Application fullscreen (cover taskbar) reliably
我无法以覆盖任务栏的方式让我的应用全屏显示。代码多年来一直未变,在 windows 7 中运行良好,但现在转向 windows 10,我发现在不同的机器上行为是不同的。
以下是某些机器上发生的情况:
它应该是全屏的,没有任务栏,而是有一个半透明的任务栏。如果我切换到窗口模式,大小不会缩小,任务栏也不再透明。在这两种情况下,部分屏幕都被任务栏覆盖了。
这是我的代码:
<controls:MetroWindow x:Class="A...MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
xmlns:views="clr-namespace:App.Views"
xmlns:controls1="clr-namespace:App.Controls"
Title="App"
Height="768"
Width="1024"
IgnoreTaskbarOnMaximize="True" //
WindowStyle="None" // This should do the trick
WindowState="Maximized" //
DataContext="{Binding MainWindowViewModel, Source={StaticResource ViewModelLocator}}"
我已阅读 this and this 但它并没有起到作用。设置大小是否可能与它有关?我发现它在我的开发电脑上运行良好很奇怪,但在其他一些机器上我得到了描述的行为。
好吧,如果这些都不起作用,我想你应该使用 Topmost="True"
如果您不希望它在 WindowState = Normal
时打扰其他应用程序,您可以将这些事件添加到您的 window:
private void Window_Activated(object sender, EventArgs e)
{
// When window got focused
Topmost = true;
}
private void Window_Deactivated(object sender, EventArgs e)
{
// When window lost focus
Topmost = false;
}
WindowStyle="None"
WindowState="Maximized"
这对我有用
我无法以覆盖任务栏的方式让我的应用全屏显示。代码多年来一直未变,在 windows 7 中运行良好,但现在转向 windows 10,我发现在不同的机器上行为是不同的。
以下是某些机器上发生的情况:
它应该是全屏的,没有任务栏,而是有一个半透明的任务栏。如果我切换到窗口模式,大小不会缩小,任务栏也不再透明。在这两种情况下,部分屏幕都被任务栏覆盖了。
这是我的代码:
<controls:MetroWindow x:Class="A...MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
xmlns:views="clr-namespace:App.Views"
xmlns:controls1="clr-namespace:App.Controls"
Title="App"
Height="768"
Width="1024"
IgnoreTaskbarOnMaximize="True" //
WindowStyle="None" // This should do the trick
WindowState="Maximized" //
DataContext="{Binding MainWindowViewModel, Source={StaticResource ViewModelLocator}}"
我已阅读 this and this 但它并没有起到作用。设置大小是否可能与它有关?我发现它在我的开发电脑上运行良好很奇怪,但在其他一些机器上我得到了描述的行为。
好吧,如果这些都不起作用,我想你应该使用 Topmost="True"
如果您不希望它在 WindowState = Normal
时打扰其他应用程序,您可以将这些事件添加到您的 window:
private void Window_Activated(object sender, EventArgs e)
{
// When window got focused
Topmost = true;
}
private void Window_Deactivated(object sender, EventArgs e)
{
// When window lost focus
Topmost = false;
}
WindowStyle="None"
WindowState="Maximized"
这对我有用