介紹Windows 10 Mobile的Continuum相關資訊
Continuum是將Windows Phone可以讓APP 去Adaptive到第二個Screen的強大功能!
預設這個功能是開啟的!所以如果選用了UWP的專案進行開發但還沒完成Continuum的功能需要調整步驟如下
- 使用XML編輯器開啟專案中的Package.appxmanifest。
- 在Package的 element的attribute加入 xml 的namespace。
-
xmlns:mobile = "http://schemas.microsoft.com/appx/manifest/mobile/windows10"
並調整 IgnorableNamespcaes = " uap mp mobile "(加入無視mobile的編譯錯誤)。
- 在Applications下的Application內的Extensions加入下方的XML
<mobile:Extension Category="windows.mobileMultiScreenProperties">
<mobile:MobileMultiScreenProperties RestrictToInternalScreen="true"/>
</mobile:Extension>
這樣就可以讓該UWP的App放在Phone中並不可以在Continuum的Large screen可以被點選。
針對Countinuum的新增了一個API讓大家對切換input的方式變換可以有使用以下的C#程式碼解決
public MainPage()
{
this.InitializeComponent();
Window.Current.SizeChanged += Current_SizeChanged;
}
private void Current_SizeChanged(object sender, Windows.UI.Core.WindowSizeChangedEventArgs e)
{
switch(UIViewSettings.GetForCurrentView().UserInteractionMode)
{
case UserInteractionMode.Mouse:
VisualStateManager.GoToState(this, "MouseVisual", true);
break;
default:
case UserInteractionMode.Touch:
VisualStateManager.GoToState(this, "TouchVisual", true);
break;
}
}
當在Continuum的時候App的畫面變換是由SizeChanged來觸發的!而一般來說當User使用Continuum的時候較大的螢幕尺寸基本上會使用Keyboard and Mouse作為輸入裝置。
針對App執行在不同尺寸(Inches)的裝置處裡的方式可以用以下的C# Code取得目前裝置的大約尺寸~
以下的Code就是抓取實際硬體螢幕尺寸是否大約為7吋。
double physicalInches = Double.MaxValue;
if (DisplayInformation.GetForCurrentView().DiagonalSizeInInches.HasValue)
physicalInches = DisplayInformation.GetForCurrentView().DiagonalSizeInInches.Value;
if (physicalInches > 0 && physicalInches < 7)
rootFrame.Navigate(typeof(SevenInch_Page));
else
rootFrame.Navigate(typeof(Normal_Page));
當然要寫出好的Continuum的App不外乎就是要做出Responsive UI的方式!剛剛上面的程式碼都是針對螢幕尺寸或是操作介面,而早在Build 10240的時候就有兩種方式可以區別裝置的UI
可以建立XAML View並且命名為 " DeviceFamily-{FamilyType} " 而FamilyType來說最簡單就是Mobile!所以可以建立一個Xaml View並且命名規則為 "MainPage.DeviceFamily-Mobile"或是建立一資料夾為DeviceFamily-Mobile並將XAML view放置該Folder下!
而甚麼是Xaml View呢?其實就是XAML但沒有.cs在後端!這是共用現有的Page.cs所以可以只有保留一份.cs但依照裝置類型做不同的Xaml view.
而之前8.1開始就支援的Assets的多解析度的Scale一樣還是可以分為使用Folder的方式或是在檔案名稱的方式。
***以上Code以及說明都有可能隨著Windows 10 的版本以及Visual Studio 2015版本有所調整!***
參考資料 MSDN, Windows Dev Center, Channel 9
Channel 9 Developer`s guide to Windows 10 Version 1511 Build App for Countinuum
下次再分享Windows 10 的新技術拉~