在当前屏幕上最大化WPF窗口

ele*_*eep 42 .net c# windows wpf

我有一个无窗口的wpf应用程序,每当我将窗口状态设置为最大化时,它会在主显示器上最大化它.

我想要做的是让它最大化显示应用程序正在运行.

所以任何想法我会怎么做?

我的代码目前只是

private void titleBarThumb_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            if (this.WindowState == System.Windows.WindowState.Normal)
            {
                this.WindowState = System.Windows.WindowState.Maximized;
            }
            else
            {
                this.WindowState = System.Windows.WindowState.Normal;
            }
        }
Run Code Online (Sandbox Code Playgroud)

Web*_*per 40

我在MainWindow(第一个控件)构造函数中包含了这一行:

Application.Current.MainWindow.WindowState = WindowState.Maximized;
Run Code Online (Sandbox Code Playgroud)

  • 最简单的总是最好的! (3认同)
  • 我发誓,这继续表明,在 WPF 中,最简单的答案有时是最难找到的!感谢这个例子。 (3认同)

Nav*_*ani 11

由于任务栏,您应该使用用户工作区的大小:

this.Width=SystemParameters.WorkArea.Width;
this.Height=SystemParameters.WorkArea.Height;
Run Code Online (Sandbox Code Playgroud)

您可以在视图的构造函数中使用它


the*_*ing 5

我不确定这是否得到了回答 - 我创建了一个示例应用程序

WindowStyle = WindowStyle.None;
Run Code Online (Sandbox Code Playgroud)

我创建了一个按钮并在点击处理程序上做了这个 -

WindowState = WindowState.Maximized
Run Code Online (Sandbox Code Playgroud)

我为窗口连接了 MouseLeftButtonDown 处理程序以拖动移动-

this.MouseLeftButtonDown += new(MainWindow_MouseLeftButtonDown);

private void MainWindow_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
   DragMove();
}
Run Code Online (Sandbox Code Playgroud)

当我将窗口拖到我的第二台显示器并单击最大化按钮时,它在当前窗口而不是启动窗口中最大化。我使用的是 VS2010 和 .NET 4。如果这有帮助,请告诉我。