C#WPF-最大化应用程序时隐藏任务栏

时间:2019-01-19 14:25:50

标签: c# wpf fullscreen taskbar

当我最大化我的应用程序时,我想隐藏任务栏。它从全屏模式开始,带有隐藏的任务栏(在MainWindow.xaml中定义,使用以下代码定义):

WindowState="Maximized"
WindowStyle="None"

我希望能够将应用程序恢复为正常的窗口模式,然后使用隐藏的任务栏返回全屏显示。

当我单击标题栏中的最大化按钮时,应用程序进入全屏模式,但任务栏保持可见。我已经尝试将ResizeMode设置为NoResize,但是对我来说不起作用。

这是我的代码:

public MainWindow()
    {
        InitializeComponent();

        StateChanged += MainWindow_StateChanged;
    }

    private void MainWindow_StateChanged(object sender, EventArgs e)
    {
        var state = ((MainWindow)sender).WindowState;

        if(state == WindowState.Normal)
        {
            // When escaping
            ResizeMode = ResizeMode.CanResize;
            WindowStyle = WindowStyle.SingleBorderWindow;
        }
        else if(state == WindowState.Maximized)
        {
            // When maximizing
            ResizeMode = ResizeMode.NoResize;
            WindowStyle = WindowStyle.None;
            Topmost = true;
        }
    }

    private void Window_KeyDown(object sender, KeyEventArgs e)
    {
        if(e.Key == Key.Escape)
        {
            WindowState = WindowState.Normal;
        }
    }

1 个答案:

答案 0 :(得分:0)

您应该更改代码,如下所示:

参考:this link

MaxHeight = SystemParameters.MaximizedPrimaryScreenHeight;
MaxWidth = SystemParameters.MaximizedPrimaryScreenWidth;

您也可以尝试提到at this thread的win32 API。