Con Windows 10 è stato introdotto il concetto di DeviceFamily, ovvero un raggruppamento logico di dispositivi accumunati da una serie di caratteristiche hardware.
Questa classificazione tuttavia, non è solo qualcosa di utile al consumatore finale. La DeviceFamily è un potente discriminante che permette a noi sviluppatori di definire delle view XAML specifiche per una determinata famiglia di dispositivi, permettendoci di evitare utilizzi spropositati dei VisualStateTrigger che, seppur potenti e di semplice utilizzo, in alcune circostanze potrebbero non essere abbastanza.
Definizione di View XAML specifiche per una DeviceFamily
I modi in cui possiamo definire delle view XAML specifiche per una DeviceFamily sono sostanzialmente due:
1. Tramite solution folder;
2. Tramite naming convention;
In entrambi i casi vanno rispettate delle naming convention.
Qualora scegliessimo l'approccio indicato al punto uno, ci sarà sufficiente nominare la cartella in questo modo: DeviceFamily-(Mobile|Team|Desktop|IoT).
Il discorso è leggermente diverso qualora scegliessimo l'approccio al punto due, perché in questo caso sarà necessario nominare ogni View XAML dedicata a quella piattaforma nella seguente maniera: ViewName.DeviceFamily-(Mobile|Team|Desktop|IoT).xaml
L'immagine sottostante mostra l'approccio descritto al punto uno.
L'immagine sottostante mostra l'approccio descritto al punto due:
La Universal Windows App presa in esame non fa sostanzialmente nulla e le due view (MainPage.xaml) differiscono solamente nel colore di sfondo e nel testo della label posta al centro dello schermo.
Eseguendo l'applicazione prima su PC e poi nell'emulatore otteniamo questo risultato.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Usare un KeyedService di default in ASP.NET Core 8
Configurare policy CORS in Azure Container Apps
Creazione di componenti personalizzati in React.js con Tailwind CSS
Gestire la cancellazione di una richiesta in streaming da Blazor
Utilizzare gRPC su App Service di Azure
Utilizzare un service principal per accedere a Azure Container Registry
Gestione degli stili CSS con le regole @layer
Eseguire una GroupBy per entity in Entity Framework
Autenticarsi in modo sicuro su Azure tramite GitHub Actions
Sfruttare i KeyedService in un'applicazione Blazor in .NET 8
Le novità di Angular: i miglioramenti alla CLI
Installare le Web App site extension tramite una pipeline di Azure DevOps