一聚教程网:一个值得你收藏的教程网站

热门教程

WPF判断surface+win8下的横屏 竖屏状态

时间:2022-06-25 08:43:32 编辑:袖梨 来源:一聚教程网

今天在做surface2+win8.1的一个wpf程序,程序固定了分辨率和高度宽度了,也就是说直接不支持竖屏模式了。

当设备从横屏切换到竖屏时,WPF程序变小,有些控件被覆盖,当从竖屏重新切换到横屏时,程序不会变成原来的大小,还是在竖屏时的大小。
注:该程序外面是window,里面是page,发现page里面的控件会被覆盖

但是在竖屏模式下怎么提示用户那?

找到了下面这个方法:

在你的主窗体中加上一个事件注册DisplaySettingsChanged:

 代码如下 复制代码

Microsoft.Win32.SystemEvents.DisplaySettingsChanged+=newSystem.EventHandler(displaySettingsChanged);

然后在事件中增加判断是不是高度大于宽度那就说明是竖屏了。

 代码如下 复制代码
privatevoiddisplaySettingsChanged(objectsender,EventArgse)
{
if(System.Windows.SystemParameters.PrimaryScreenHeight>System.Windows.SystemParameters.PrimaryScreenWidth)
{
//Runtheapplicationinportrait
this.Width=1269;
this.Height=699;
MessageBox.Show("助手程序不支持竖屏工作,请在横屏模式下使用。");return;
}
else
{
this.Width=1269;
this.Height=699;
}
}

surface的正常工作高度和宽度是:1269*699.

热门栏目