當我們在開發 universal app,讓 App 可以同時在兩個平台上執行,但是,某些情況,我們需要在特定平台上寫入只有該平台才擁有的功能,這個時候,您可以使用 [條件式編譯的符號] 來區隔,Windows Phone 使用 WINDOWS_PHONE_APP,而Windows Store 則使用 WINDOWS_APP。
那麼,我們要如何在 Visual Studio 上換不同平台,看到這些程式碼是否有效呢?
我們使用下圖做說明, NavigationHelper.cs 是共用程式碼區域的C#,在下圖內,我們看到了這行程式碼,只有 Windows Phone 才會使用的,如底下這行程式碼:
而底下的程式碼,是在 Windows Store App 環境下才會執行的。
我們可以使用下圖編號1標示的地方,切換使用不同平台的 [條件式編譯的符號] ,如此,我們就可以看到不同平台的程式碼,是否有問題發生。
在下圖中,我們使用的是 Windows Store App平台的程式碼,您會看到了 Windows Phone 專屬的程式碼變成不可用的灰色了。
在下圖中,我們使用的是 Windows Phone App平台的程式碼,您會看到 Windows Phone 會用到的程式碼變成可用的黑色了。
那麼,我們要如何在 Visual Studio 上換不同平台,看到這些程式碼是否有效呢?
我們使用下圖做說明, NavigationHelper.cs 是共用程式碼區域的C#,在下圖內,我們看到了這行程式碼,只有 Windows Phone 才會使用的,如底下這行程式碼:
Windows.Phone.UI.Input.HardwareButtons.BackPressed += HardwareButtons_BackPressed;
而底下的程式碼,是在 Windows Store App 環境下才會執行的。
// 只有佔用整個視窗時才適用鍵盤和滑鼠巡覽 if (this.Page.ActualHeight == Window.Current.Bounds.Height && this.Page.ActualWidth == Window.Current.Bounds.Width) { // 直接接聽視窗,所以不需要焦點 Window.Current.CoreWindow.Dispatcher.AcceleratorKeyActivated += CoreDispatcher_AcceleratorKeyActivated; Window.Current.CoreWindow.PointerPressed += this.CoreWindow_PointerPressed; }
我們可以使用下圖編號1標示的地方,切換使用不同平台的 [條件式編譯的符號] ,如此,我們就可以看到不同平台的程式碼,是否有問題發生。
在下圖中,我們使用的是 Windows Store App平台的程式碼,您會看到了 Windows Phone 專屬的程式碼變成不可用的灰色了。
在下圖中,我們使用的是 Windows Phone App平台的程式碼,您會看到 Windows Phone 會用到的程式碼變成可用的黑色了。
沒有留言:
張貼留言