[Windows Mobile]旋轉螢幕方向
1. 問題描述
如何透過程式讓旋轉螢幕方向,以及取得螢幕解析度與工作區域大小
2. 方法
2.1 旋轉螢幕方向
想要讓螢幕旋轉方向,可透過設定 SystemSettings.ScreenOrientation 屬性達成
SystemSettings.ScreenOrientation 屬性: 取得或設定裝置的目前螢幕方向,可設定為 0、90、180 和 270。預設值為 0 (縱向檢視)。
想要使用它,必須先加入參考並且引用 Microsoft.WindowsCE.Forms,Microsoft.WindowsCE.Forms.dll 檔案的位置在
C:\Program Files\Microsoft.NET\SDK\CompactFramework\v2.0\WindowsCE\Microsoft.WindowsCE.Forms.dll
程式碼
using System;
using System.Linq;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
// Microsoft.WindowsCE.Forms : 包含使用 .NET Compact Framework 進行裝置應用程式設計的類別。
using Microsoft.WindowsCE.Forms;
namespace SmartDeviceProject2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnPortrait_Click(object sender, EventArgs e)
{
SystemSettings.ScreenOrientation = ScreenOrientation.Angle0; // 設定螢幕方向為0度直立方向
}
private void btnLandscape_Click(object sender, EventArgs e)
{
SystemSettings.ScreenOrientation = ScreenOrientation.Angle90; // 設定螢幕方向為90度
}
private void Form1_Resize(object sender, EventArgs e)
{
txtSystemSettings.Text = SystemSettings.ScreenOrientation.ToString(); // 取得目前螢幕方向
}
}
}
執行結果
點選 Portrait 按鈕,螢幕方向為0度直立方向
點選 Landscape 按鈕,螢幕方向為90度
範例下載
2.2 取得螢幕解析度與工作區域大小
想要取得螢幕解析度與工作區域大小,可透過
Screen.PrimaryScreen 屬性 : 取得主要的顯示
PrimaryScreen.Bounds : 取得顯示界限
PrimaryScreen.WorkingArea : 取得工作區域
我們將 2.1 的程式在 Form_Resize 事件中,加上以下程式碼
private void Form1_Resize(object sender, EventArgs e)
{
txtSystemSettings.Text = SystemSettings.ScreenOrientation.ToString(); // 取得目前螢幕方向
// start=== 取得螢幕解析度 ===
Rectangle rectScreen = Screen.PrimaryScreen.Bounds;
this.txtScreen.Text = rectScreen.Width + " x " + rectScreen.Height;
// end =======================
// start=== 工作區域,工作區域指顯示的桌面區域,不包括工具列、 停駐視窗和停駐工具列===
Rectangle rectWork = Screen.PrimaryScreen.WorkingArea;
this.txtWorkArea.Text = rectWork.Width + " x " +rectWork.Height;
// end =======================
}
執行結果
螢幕方向為0度直立方向
螢幕方向為90度
3. 參考
MSDN SystemSettings.ScreenOrientation
MSDN Screen.PrimaryScreen