【问题标题】:Make WPF Application fullscreen (cover taskbar) reliably可靠地使 WPF 应用程序全屏(覆盖任务栏)
【发布时间】:2019-06-27 11:44:06
【问题描述】:

我无法以覆盖任务栏的方式全屏显示我的应用程序。代码多年来一直没有变化,并且在 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}}"

我已经阅读了thisthis,但它并没有起到作用。设置大小是否可能与它有关?我觉得奇怪的是它在我的开发电脑上运行良好,但在其他一些机器上我得到了所描述的行为。

【问题讨论】:

  • 尝试设置 ResizeMode="NoResize"?
  • 我已经尝试过了,但总的来说我希望调整大小。问题是当它在不同的 PC 上以不同的方式完成时。

标签: c# wpf wpf-controls fullscreen


【解决方案1】:

好吧,如果这些都不起作用,我想你应该使用Topmost="True"

如果您不希望它在WindowState = Normal 时打扰其他应用程序,您可以将这些事件添加到您的窗口中:

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;
}

【讨论】:

    【解决方案2】:
    WindowStyle="None"    
    WindowState="Maximized" 
    

    这对我有用

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-28
      • 1970-01-01
      • 2010-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多