Windows Phone 7 UI設計:代碼隱藏文件和啟動畫面
如果你有Silverlight和C#開發經驗,在Windows Phone 7上進行UI設計時,Windows Phone 7應用程序開發平臺“Silverlight for Windows Phone”是Silverlight程序員必備的工具,熟悉Silverlight for Windows Phone之后同樣還需要熟悉App.xaml和它的代碼隱藏文件App.xaml.cs,C#代碼增加了一些與手機相關的初始化代碼,App類使用公共 RootFrame屬性對根框架提供了簡單的訪問。
public PhoneApplicationFrame RootFrame { get; private set; }
PhoneApplicationFrame指的是 MicrosoftPhone.Controls.PhoneApplicationFrame,App.xaml.cs使用 Microsoft.Phone.Controls和Microsoft.Phone.Shell命名空間,App類構造函數調用 IntializePhoneApplication方法,它增加了電話相關的代碼以顯示啟動畫面,下面的代碼片段顯示了經典的Silverlight初始化和新的與手機相關的方法:
public App() { // Global handler for uncaught exceptions. // Note that exceptions thrown by ApplicationBarItem.Click // will not get caught here. UnhandledException += Application_UnhandledException; // Standard Silverlight initialization InitializeComponent(); // Phone-specific initialization InitializePhoneApplication(); }
下面的代碼顯示了InitializePhoneApplication和CompleteInitializePhoneApplication 方法,InitializePhoneApplication方法創建新的框架,并在其中顯示啟動畫面,直到應用程序啟動完畢,CompleteInitializePhoneApplication方法將新框架設置為RootVisual,因為它要連接 RootFrame.Navigated的事件處理程序,注意,不要修改這些方法:
private bool phoneApplicationInitialized = false; // Do not add any additional code to this method private void InitializePhoneApplication() { if (phoneApplicationInitialized) return; // Create the frame but don't set it as RootVisual yet; // this allows the splash screen to remain active until the // application is ready to render. RootFrame = new PhoneApplicationFrame(); RootFrame.Navigated += CompleteInitializePhoneApplication; // Handle navigation failures RootFrame.NavigationFailed += RootFrame_NavigationFailed; // Ensure we don't initialize again phoneApplicationInitialized = true; } // Do not add any additional code to this method private void CompleteInitializePhoneApplication(object sender, NavigationEventArgs e) { // Set the root visual to allow the application to render if (RootVisual != RootFrame) RootVisual = RootFrame; // Remove this handler since it is no longer needed RootFrame.Navigated -= CompleteInitializePhoneApplication; }
當應用程序加載時,模擬器和設備要顯示啟動畫面,啟動畫面是一個包含在項目中的24位色深,800x480像素的位圖文件 - SplashScreenImage.jpg,你可以用自己的jpeg文件替換它,但注意不能修改名字,只能是 SplashScreenImage.jpg,圖1和圖2分別顯示了默認和自定義啟動畫面。
圖 1 默認的位圖文件SplashScreenImage.jpg
圖 2 自定義位圖文件SplashScreenImage.jpg
啟動畫面必須是24位色深,分辨率為800x480像素的jpeg格式文件,如果使用PNG文件代替,將不會顯示啟動畫面,設計自定義啟動畫面時要注意,用戶是可以旋轉設備的。