C# WPF:在分辨率不同的屏幕上,即使窗口状态最大化,滚动条也会出现

C# WPF:在分辨率不同的屏幕上,即使窗口状态最大化,滚动条也会出现,c#,wpf,C#,Wpf,我的项目使用.NET4.0,我有一个WPF应用程序和两个分辨率分别为1600 X 900和1920 X 1080的监视器。在第一种情况下,由于分辨率低,我希望出现滚动条,当我将应用程序移动到HD分辨率监视器并将其最大化时,滚动条会同时出现在X轴和Y轴上 当两个屏幕具有相同的分辨率1920 X 1080时,则一切正常,不会出现滚动条 最大化的代码段: if (screen != null) { window.WindowState = System.Windows.WindowState.

我的项目使用.NET4.0,我有一个WPF应用程序和两个分辨率分别为1600 X 900和1920 X 1080的监视器。在第一种情况下,由于分辨率低,我希望出现滚动条,当我将应用程序移动到HD分辨率监视器并将其最大化时,滚动条会同时出现在X轴和Y轴上

当两个屏幕具有相同的分辨率1920 X 1080时,则一切正常,不会出现滚动条

最大化的代码段:

if (screen != null)
{
    window.WindowState = System.Windows.WindowState.Normal;
    window.Left = screen.WorkingArea.Left;
    window.Top = screen.WorkingArea.Top;
    window.WindowState = System.Windows.WindowState.Maximized;
    window.Height = screen.WorkingArea.Height;
    window.Width = screen.WorkingArea.Width;
}
我知道在4.5中,我可以使用SystemCommands来最大化。但是我不知道如何在4.0中解决这个问题。
我想知道,即使窗口状态最大化,为什么仍会显示滚动条?

WPF应用程序通常独立于您的分辨率。 如果要使窗口最大化,请使用以下命令:

 window.WindowState = System.Windows.WindowState.Maximized;

我找到了解决方案,通过检查窗口组件的属性,以某种方式重置了不同分辨率监视器的resize mode属性。即使在高分辨率显示器上打开,它也可能记得较低分辨率的调整大小模式。 下面的代码解决了我的问题

if (screen != null)
{
    window.WindowState = System.Windows.WindowState.Normal;
    window.Left = screen.WorkingArea.Left;
    window.Top = screen.WorkingArea.Top;
    window.ResizeMode = ResizeMode.NoResize; 
    window.WindowStyle = WindowStyle.None;
    window.WindowState = System.Windows.WindowState.Maximized;
    window.Height = screen.WorkingArea.Height;
    window.Width = screen.WorkingArea.Width;
}

我希望它能帮助那些可能被困在这里的人。

似乎还有其他问题。否则,就不需要将WindowsState设置两次。也许设置这些项目的时间不合适。
我在“窗口加载”中进行了一次尝试,但没有成功。现在我在窗口的构造器中执行这些操作,一切都很好

您是在询问滚动条还是窗口大小调整。如果你真的要问滚动条,你能帮我写下它们的代码吗?要求将窗口大小调整到最大值,但滚动条会自动出现在两个不同分辨率的监视器中,在同一分辨率监视器中,这不是问题中提到的问题。我知道它与分辨率无关,但出于某种奇怪的原因,它不起作用。正如您已经在问题中看到的,我已经尝试了此代码。:)“不是我做的”:你的意思是“现在我做的东西”?代码中的屏幕是什么??你能告诉我吗?@praveen这是System.Windows.Forms.Screen。例如,您可以获得如下var primaryScreen=System.Windows.Forms.screen.AllScreens.FirstOrDefault(s=>s.primary)这样的主屏幕;我试过这个,但对我不起作用。。我通过这个链接使用了自定义滚动条,我设置了窗口的最小宽度和高度。。调整大小后,将显示滚动条。。我将水平滚动条调整到右侧,将其恢复为最大化屏幕,当它恢复为最大化屏幕时,它与滚动条定位的右侧对齐。请在此@MKMohanty上向我推荐