Tra i nuovi controlli introdotti con il rilascio della Universal Windows Platform, ne abbiamo uno appositamente creato per visualizzare e selezionare una data dal calendario.
Il controllo in questione è CalendarDatePicker: questo controllo presenta una un look simile ad una TextBox, con una piccola icona sul lato destro.
Come qualsiasi altro controllo, è possibile personalizzare l'aspetto, creando uno Style apposito che ne ridefinisca il template.
Il template del CalendarDatePicker è molto complesso, poichè utilizza diversi controlli al suo interno, come ad esempio un Flayout e un CalendarView.
<ControlTemplate TargetType="CalendarDatePicker">
<Grid x:Name="Root">
<!--rimosso -->
<TextBlock x:Name="DateText"
Foreground="{ThemeResource SystemControlForegroundBaseMediumBrush}"
FontSize="15"
HorizontalAlignment="Left"
Padding="12, 0, 0, 0"
Grid.Row="1"
Text="{TemplateBinding PlaceholderText}"
VerticalAlignment="Center" />
<FontIcon x:Name="CalendarGlyph"
Grid.Column="1"
Foreground="{ThemeResource SystemControlForegroundBaseMediumHighBrush}"
FontSize="16"
FontFamily="{ThemeResource SymbolThemeFontFamily}"
Glyph="?"
HorizontalAlignment="Center"
Grid.Row="1"
VerticalAlignment="Center" />
</Grid>
</ControlTemplate>È possibile modificare l'aspetto del controllo, ad esempio modificando l'icona, semplicemente com la proprietà Glyph, o rimuovendo il controllo stesso e sostituendolo con un'immagine o qualsiasi altro elemento utile alla nostra applicazione.
Ad esempio, nell'immagine seguente possiamo vedere come sia stata personalizzata l'icona utilizzando uno dei tanto "caratteri" messi a disposizione dal nuovo font Segoe MDL2 Assets.

Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Ricerca delle GitHub issue tramite operatori logici
Utilizzare zizmor per rendere più sicuri i workflow di GitHub
Utilizzare noopener e noreferrer nei link HTML
Utilizzare AbortController per cancellare operazioni asincrone in JavaScript
Integrare Agenti A2A in Azure API Management
Blazor e Static Web Assets in .NET 10
Usare la parola chiave field per semplificare la scrittura di proprietà in C#
Effettuare un clone parziale di un repository di GitHub
Effettuare chiamate API tramite GitHub App
Definire il metodo di rilascio in .NET Aspire
Importare repository da Bitbucket a GitHub Enterprise Cloud
Logica Graceful Degradation in HTML e CSS


