【问题标题】:Borderless application on maximize is hiding behind the task bar in Win 7 and Win 8最大化的无边界应用程序隐藏在 Win 7 和 Win 8 中的任务栏后面
【发布时间】:2012-07-29 18:57:54
【问题描述】:

我在 WPF 中创建了一个无边框窗口。我写了一个事件来最大化窗口,但是在最大化时,窗口的一部分有时会隐藏在任务栏后面,片刻之后会出现在任务栏的顶部。

如何确保窗口每次都保持在任务栏的顶部?以下是我实施的方式:

private void OnMaximizedClicked(object sender, RoutedEventArgs e)
{
    this.WindowState = this.WindowState != WindowState.Normal ? WindowState.Normal : WindowState.Maximized;
}

我尝试将 TopMost 属性设置为 true,但也没有帮助我。

【问题讨论】:

  • 如何在“无窗口应用程序”中最大化窗口?
  • 我正在网格上创建一个堆栈面板,添加三个按钮,最小、最大和关闭。换句话说,创建我自己的标题栏。
  • 它被称为“无边框窗口”。我不会重现这种行为。
  • 在连续最大化和恢复窗口时,我可以看到这种行为。我设置的属性是:WindowStyle="None" ResizeMode="NoResize"
  • AlwaysTransparency 也设置为 true ..

标签: c# wpf


【解决方案1】:

这会解决它,但我觉得应该有一个更优雅的方式:

this.WindowStyle = System.Windows.WindowStyle.SingleBorderWindow;
this.WindowState = this.WindowState != WindowState.Normal 
                 ? WindowState.Normal : WindowState.Maximized;
this.WindowStyle = System.Windows.WindowStyle.None;

顺便说一句,我改编自 WinForms answer。所以它与 WPF 无关,您可以使用更广泛的搜索网络。

【讨论】:

  • 当我在最大化后设置 WindowStyle 时,窗口溢出屏幕大约 8 个像素(似乎是四面八方),而不是正确最大化。
【解决方案2】:

将 ResizeMode 设置为 NoResize 对我的情况有所帮助:

ResizeMode="NoResize"

【讨论】:

    猜你喜欢
    • 2019-06-13
    • 2012-09-30
    • 2017-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-26
    • 1970-01-01
    相关资源
    最近更新 更多