如何确定移动设备在C#中的屏幕方向?

时间:2008-11-08 05:29:38

标签: c# user-interface windows-mobile

我怎样才能在C#-Application中知道移动设备屏幕朝哪个方向? (即水平或垂直)。

4 个答案:

答案 0 :(得分:3)

在Microsoft.WindowsMo​​bile.Status中,有一个类可以跟踪设备的各种属性。 除了你需要的那个,DisplayRotation,它还包含有关电话覆盖,未接来电的Nr,下次预约等等的属性。有关详细信息,请参阅msdn

您还可以添加一个事件处理程序,以通知这些属性的更改。

答案 1 :(得分:2)

将Microsoft.WindowsCE.Forms的引用添加到项目中。然后你可以参考 Microsoft.WindowsCE.Forms。 SystemSettings.ScreenOrientation 属性,它将为您提供所需的内容。

顺便提一下,您可以设置此属性,因此也可以用来设置屏幕方向。

答案 2 :(得分:1)

你应该为项目添加2个参考: Microsoft.WindowsMo​​bile Microsoft.WindowsMo​​bile.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.