Nell'articolo sul controllo PivotViewer
(https://www.silverlightitalia.com/articoli/silverlight/pivotviewer-v2-silverlight-5.0.aspx),
disponibile nell'SDK di Silverlight 5.0, abbiamo introdotto le possibilità di personalizzazione del layout delle tradecards. Anche il pannello di dettaglio può essere fortemente personalizzato.
La scelta dei colori si può gestire attraverso le proprietà:
- SecondaryBackground
- BorderBrush
- AccentColor
- ControlBackground
- Foreground
- SecondaryForeground
- PrimaryItemValueBackgroundColor
- SecondaryItemValueBackgroundColo
Con i seguenti valori:

Si può ottenere il risultato seguente:

La barra, inoltre, può essere anche completamente ridefinita: trattandosi del controllo PivotViewerDetailPane possiamo ridefinire il suo Style ed il suo Template.
Ecco un esempio:
<Style TargetType="sdk:PivotViewerDetailPane" x:Key="DetailPaneStyle1"> <Setter Property="Foreground" Value="{Binding Foreground, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=sdk:PivotViewer}}" /> <Setter Property="BorderBrush" Value="{Binding BorderBrush, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=sdk:PivotViewer}}" /> <Setter Property="AccentColor" Value="{Binding AccentColor, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=sdk:PivotViewer}}" /> <Setter Property="Background" Value="{Binding SecondaryBackground, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=sdk:PivotViewer}}" /> <Setter Property="ControlBackground" Value="{Binding ControlBackground, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=sdk:PivotViewer}}" /> <Setter Property="SecondaryForeground" Value="{Binding SecondaryForeground, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=sdk:PivotViewer}}" /> <Setter Property="PrimaryItemValueBackgroundColor" Value="{Binding PrimaryItemValueBackgroundColor, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=sdk:PivotViewer}}" /> <Setter Property="SecondaryItemValueBackgroundColor" Value="{Binding SecondaryItemValueBackgroundColor, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=sdk:PivotViewer}}" /> <Setter Property="ContentTemplate"> <Setter.Value> <DataTemplate> <Grid Width="190"> <StackPanel Margin="10"> <TextBlock Text="{Binding Title, StringFormat='Titolo: {0}'}" FontSize="30" Margin="5" HorizontalAlignment="Left" /> <Image Source="{Binding WebsiteLogo}" Height="150" Margin="5" Stretch="Uniform" /> <TextBlock Text="{Binding AuthorName}" FontSize="30" FontWeight="Bold" Margin="5,0,5,0" HorizontalAlignment="Left" /> <TextBlock Text="{Binding Abstract}" FontSize="20" Margin="5" TextWrapping="Wrap" /> </StackPanel> </Grid> </DataTemplate> </Setter.Value> </Setter> </Style>
Nello Style precedente possiamo vedere come le proprietà della barra vengano prese dai valori impostati sul controllo PivotViewer attraverso le espressioni di binding con RelativeSource e FindAncestor, novità introdotta proprio in Silverlight 5.
Nel ContentTemplate, invece, abbiamo la possibilità di definire tutto il markup per mostrare un layout completamente personalizzato.

Ovviamente, ridefinendo il ContentTemplate, ci perdiamo le molte funzionalità implementate nativamente dal controllo, che se necessario devono essere reimplementate manualmente.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Autenticazione di git tramite Microsoft Entra ID in Azure DevOps
Loggare le query più lente con Entity Framework
Utilizzare il metodo Index di LINQ per scorrere una lista sapendo anche l'indice dell'elemento
Sfruttare gli embedding e la ricerca vettoriale con Azure SQL Database
Change tracking e composition in Entity Framework
Referenziare un @layer più alto in CSS
Supportare la crittografia di ASP.NET Core con Azure Container App
Il nuovo controllo Range di Blazor 9
Creare una libreria CSS universale: Cards
Utilizzare WebJobs su Linux con Azure App Service
Gestione degli eventi nei Web component HTML
Utilizzare l'espressione if inline in una pipeline di Azure DevOps
I più letti di oggi
- Microsoft Security Bulletin MS04-004
- Nuovo managed provider ADO.NET per MySQL
- Parte il test del SP2 di Windows Server 2003
- Dependency injection in ASP.NET MVC 5 con Ninject
- Impostare la culture per la client side validation di ASP.NET MVC 5
- API di #Cassandra supportate direttamente da #CosmosDB, che si aggiunge alle API per #MongoDB, #DocumentDB, Table Storage, Spark e Gremlin Graph #Azure #MSFTConnect
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Utilizzare politiche di resiliency con Azure Container App
- Caricamento differito di assembly o di porzioni di progetto in Silverlight 2.0