我怎样才能在C#-Application中知道移动设备屏幕朝哪个方向? (即水平或垂直)。
答案 0 :(得分:3)
在Microsoft.WindowsMobile.Status中,有一个类可以跟踪设备的各种属性。 除了你需要的那个,DisplayRotation,它还包含有关电话覆盖,未接来电的Nr,下次预约等等的属性。有关详细信息,请参阅msdn。
您还可以添加一个事件处理程序,以通知这些属性的更改。
答案 1 :(得分:2)
将Microsoft.WindowsCE.Forms的引用添加到项目中。然后你可以参考 Microsoft.WindowsCE.Forms。 SystemSettings.ScreenOrientation 属性,它将为您提供所需的内容。
顺便提一下,您可以设置此属性,因此也可以用来设置屏幕方向。
答案 2 :(得分:1)
你应该为项目添加2个参考: Microsoft.WindowsMobile Microsoft.WindowsMobile.Status
然后您可以使用此代码来确定方向:
int orientation=Microsoft.WindowsMobile.Status.SystemState.DisplayRotation;
if(orientation== 90 || orientation==-90 || orientation==270) //Landscape is 90 or -90 or 270
{
//your code;
}
else
{
//your code;
}
答案 3 :(得分:0)
猜测但我的第一次尝试是:
var rect = System.Windows.Forms.Screen.PrimaryScreen.Bounds;
// or var rect = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea;
var ratio = rect.Width / rect.Height;
if (ratio == 1.0) // square screen.
if (ratio > 1.0) // landscape.
if (ratio < 1.0) // portrait.