Spunti di Adaptive Code con UWP
Quando parliamo di Universal Windows Platform parliamo per diretta conseguenza di Windows 10, e quindi di tutti i possibili hardware capaci di far girare Windows 10, dallo smartphone a tutti gli altri possibili ed immaginabili dispositivi. E’ importante applicare quindi correttamente concetti come Adaptive UI (ovvero un’interfaccia utente capace di adattarsi e di scalare in base alla risoluzione ed allo schermo correnti), ma anche di Adaptive Code, ovvero di codice c# che capisca su quali famiglia di dispositivi ci troviamo e di adattarsi di conseguenza.
Per quale motivo? Ce ne sono tanti, a dir la verità.
Facciamo una cosa semplice. Supponiamo di creare ed istanziare una MessageDialog:
var dialog = new MessageDialog(
string.Format("Aprire il link {0} ?", url),
"Apertura sito Web");
dialog.Commands.Add(
new UICommand { Label = "&Sì", Id = 0 });
dialog.Commands.Add(
new UICommand { Label = "&No", Id = 1 });
dialog.DefaultCommandIndex = 0;
dialog.CancelCommandIndex = 1;
var res = await dialog.ShowAsync();
string family = Windows.System.Profile.AnalyticsInfo.VersionInfo.DeviceFamily;
Il valore restituito è una semplice stringa. E quindi possiamo scrivere:
string family = Windows.System.Profile
.AnalyticsInfo.VersionInfo.DeviceFamily;
string yesLabel = "Sì";
string noLabel = "No";
if (family == "Windows.Desktop")
{
yesLabel = "&Sì";
noLabel = "&No";
}
Windows.Desktop è il valore che quella DeviceFamily assume quando il codice gira sotto l’ambiente desktop (quindi PC di varia natura). Il valore diventa Windows.Mobile se il codice sta girando sotto smartphone.
