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文件代替,將不會顯示啟動畫面,設計自定義啟動畫面時要注意,用戶是可以旋轉設備的。