Nel Microsoft design style applicato in Windows 8, le animazioni sono parte attiva della user experience poichè sono finalizzate ad una maggiore compresione della presenza degli elementi e soprattutto del loro alternarsi durante l'utilizzo sistema operativo.
Microsoft ha ritenuto questo principio così importante anche per le Windows Store app tanto da aver arricchito fin da subito di una proprietà Transitions tutti oggetti grafici che ereditano da UIElement.
Con tale proprietà, di tipo TransitionCollection, possiamo gestire le animazioni di ogni elemento dell'interfaccia con una semplicità estrema, ma anche con la consueta flessibilità di WinRT.
TransitionCollection accetta una collezione di oggetti Transition e delle sue estensioni. Nell'SDK troviamo:
- AddDeleteThemeTransition
- ContentThemeTransition
- EdgeUIThemeTransition
- EntranceThemeTransition
- PaneThemeTransition
- PopupThemeTransition
- ReorderThemeTransition
- RepositionThemeTransition
I loro nomi sono abbastanza autoesplicativi sull'animazione che possono applicare ad un oggetto, in relazione ad un corrispondente evento. Uno degli aspetti interessanti è anche la possibilità di combinare tra loro più transizioni.
L'utilizzo è estremamente semplice e come sempre può essere gestito sia da markup diretto, che negli Style/Template e anche programmaticamente.
<Button Content="Button"> <Button.Transitions> <TransitionCollection> <EntranceThemeTransition /> </TransitionCollection> </Button.Transitions> </Button>
Oltre a singoli UIElement, collezioni di Transition possono essere applicati anche agli elementi interni a ItemsControl, ContentControl e Panel.
Per questi oggetti, TransitionCollection è esposto da altre proprietà rispetto a Transitions, come ItemContainerTransitions, ContentTransitions e ChildrenTransitions. Con esse le transizioni sono applicate automaticamente in sequenza per ciascun elemento delle collezioni, creando così effetti molto piacevoli.
<ItemsControl Grid.Row="1"> <ItemsControl.ItemContainerTransitions> <TransitionCollection> <EntranceThemeTransition /> </TransitionCollection> </ItemsControl.ItemContainerTransitions> <ItemsControl.ItemsPanel> <ItemsPanelTemplate> <StackPanel Orientation="Horizontal"> <StackPanel.Transitions> <TransitionCollection> <EdgeUIThemeTransition /> </TransitionCollection> </StackPanel.Transitions> </StackPanel> </ItemsPanelTemplate> </ItemsControl.ItemsPanel> <ItemsControl.Items> <Rectangle Fill="Red" Width="100" Height="100" Margin="10" /> <Rectangle Fill="Red" Width="100" Height="100" Margin="10" /> </ItemsControl.Items> </ItemsControl>
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
.NET Aspire per applicazioni distribuite
Utilizzare gRPC su App Service di Azure
Gestione degli stili CSS con le regole @layer
Generare la software bill of material (SBOM) in GitHub
Gestione degli eventi nei Web component HTML
Estrarre dati randomici da una lista di oggetti in C#
Utilizzare Azure AI Studio per testare i modelli AI
Sfruttare GPT-4o realtime su Azure Open AI per conversazioni vocali
Utilizzare WhenEach per processare i risultati di una lista di task
Inference di dati strutturati da testo con Semantic Kernel e ASP.NET Core Web API
Aggiornare a .NET 9 su Azure App Service
Utilizzare DeepSeek R1 con Azure AI
I più letti di oggi
- Eseguire una chiamata AJAX per inviare dati al server in Angular 2
- Formati per l'impostazione del colore in CSS3
- la Call For Papert per #netconfit è aperta!invia la tua sessione da https://aspit.co/netconfit-20 puoi parlare di #net5, #aspnet5, #efcore5, #CSharp9 e tutto quello che ruota intorno a #dotnet.
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Impostare un riferimento ad una entity collegata tramite foreign key