如何使用C#确定屏幕宽度/高度

时间:2011-06-08 11:17:05

标签: c# wpf screen css

我想设置宽度&根据用户屏幕最大宽度/高度动态Window的高度。如何以编程方式确定?

6 个答案:

答案 0 :(得分:35)

对于主屏幕:

System.Windows.SystemParameters.PrimaryScreenWidth
System.Windows.SystemParameters.PrimaryScreenHeight

请注意,还有一些其他与主要屏幕相关的属性取决于各种因素,Full*& Maximised*

虚拟屏幕:

SystemParameters.VirtualScreenWidth
SystemParameters.VirtualScreenHeight

答案 1 :(得分:12)

如果您想要运行程序的监视器的特定尺寸(如果某人正在运行多个监视器),您还可以使用:

var helper = new WindowInteropHelper(this); //this being the wpf form 
var currentScreen = Screen.FromHandle(helper.Handle);

这将返回一个屏幕对象,引用运行该程序的监视器。从那里你可以使用currentScreen.Bounds.Width / Height属性(完整大小)或currentScreen.WorkingArea.Width / Height(减去任务栏等),具体取决于你想要的。

答案 2 :(得分:6)

使用屏幕对象

Screen.PrimaryScreen.Bounds.Width

答案 3 :(得分:2)

您可以使用SizeChanged事件

SizeChanged="MyWindow_SizeChanged"

然后在你的事件处理程序中,

private void Window_SizeChanged(object sender, SizeChangedEventArgs e)
{
    if (this.MinWidth > 0 && this.MinHeight > 0)
    {
        double heightScaleFactor = e.NewSize.Height / this.MinHeight;
        double widthScaleFactor = e.NewSize.Width / this.MinWidth;            
        mainGrid.LayoutTransform = new ScaleTransform(heightScaleFactor, widthScaleFactor);
    }
}

其中MainGridMyWindow中所有内容的容器。

答案 4 :(得分:1)

从Ranorex Studio 8.0.1 + git.8a3e1a6f调用它时,我无法使用.NET 4.0.30319.42000上的任何解决方案与Windows 10企业版,所以我使用了这行

using WinForms = System.Windows.Forms;
[…]
                SetWindowPos(processes[0].MainWindowHandle,
                    0,
                    y,
                    x,
                    WinForms.SystemInformation.PrimaryMonitorSize.Width,
                    WinForms.SystemInformation.PrimaryMonitorSize.Height,
                    SWP.SHOWWINDOW);

答案 5 :(得分:0)

您可以获取屏幕的高度和宽度:

int height = System.Windows.Forms.SystemInformation.PrimaryMonitorSize.Height;
int width = System.Windows.Forms.SystemInformation.PrimaryMonitorSize.Width;

然后将窗口的HeightWidth属性设置为初始化中的那些属性。

this.Height = height;
this.Width = width;

在WinForms或ASP .NET中获取屏幕的高度和宽度。没事,不要大惊小怪,除了如果它不是WinForm项目,则需要在项目中引用System.Windows.Forms程序集。