当前位置: 首页 > 知识库问答 >
问题:

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

薛寒
2023-03-14

当我最大化我的应用程序时,我想隐藏任务栏。它以全屏模式启动,并带有隐藏的任务栏(在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个答案

宦源
2023-03-14

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

参考:此链接

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

您还可以尝试本线程中提到的Win32API。

 类似资料: