Alessandro Del Sole's Blog

{ A programming space about Microsoft® .NET® }
posts - 1908, comments - 2047, trackbacks - 352

My Links

News

Your host

This is me! Questo spazio è dedicato a Microsoft® .NET®, di cui sono molto appassionato :-)

Cookie e Privacy

Disabilita cookie ShinyStat

Microsoft MVP

My MVP Profile

Microsoft Certified Professional

Microsoft Specialist

Xamarin Certified Mobile Developer

Il mio libro su VB 2015!

Pre-ordina il mio libro su VB 2015 Pre-ordina il mio libro "Visual Basic 2015 Unleashed". Clicca sulla copertina per informazioni!

Il mio libro su WPF 4.5.1!

Clicca sulla copertina per informazioni! E' uscito il mio libro "Programmare con WPF 4.5.1". Clicca sulla copertina per informazioni!

These postings are provided 'AS IS' for entertainment purposes only with absolutely no warranty expressed or implied and confer no rights.
If you're not an Italian user, please visit my English blog

Le vostre visite

I'm a VB!

Guarda la mia intervista a Seattle

Follow me on Twitter!

Altri spazi

GitHub
I miei progetti open-source su GitHub

Article Categories

Archives

Post Categories

Image Galleries

Privacy Policy

WPF: animare dinamicamente lo sfondo di un DatePicker

Questo post nasce da un thread transitato oggi nel forum WPF di Visual Basic Tips & Tricks, nel quale è stato chiesto se fosse possibile cambiare dinamicamente il colore di sfondo di un DatePicker. Partendo dai seguenti presupposti:

  1. la tecnica descritta in questo post non è assoluta ma è una delle possibili (ad esempio si potrebbe cambiare in modo da attuarla da codice managed)
  2. la stessa tecnica può essere applicata ad altri controlli
  3. se si desidera modificare il colore del controllo calendario facente parte del DatePicker, il discorso cambia notevolmente

si può ricorrere ad una ColorAnimation che nel caso in questione viene avviata al caricamento del contenitore del DatePicker (una Grid), nell'ambito di un EventTrigger. Di una tecnica abbastanza simile ho parlato in altra occasione, per cui in questo caso ho inserito dei commenti nel codice XAML, che è il seguente:

    <Grid>

        <Grid.Triggers>

            <!-- Faccio in modo di eseguire l'azione di seguito

            specificata al verificarsi del caricamento della Grid-->

            <EventTrigger RoutedEvent="Grid.Loaded">

                <EventTrigger.Actions>

                    <!-- Implemento l'animazione -->

                    <BeginStoryboard>

                        <!-- L'animazione punta alla proprietà Color di un oggetto chiamato

                        DatePickerBack, che rappresenta il colore ed è definito in seguito -->

                        <Storyboard Storyboard.TargetProperty="Color" Storyboard.TargetName="DatePickerBack">

                            <!-- Un'animazione perpetua, eseguita sui colori -->

                            <ColorAnimation From="Blue" To="Violet" BeginTime="0:0:0"

                                            AutoReverse="True" RepeatBehavior="Forever"

                                            Duration="0:0:3">

                            </ColorAnimation>

                        </Storyboard>

                    </BeginStoryboard>

                </EventTrigger.Actions>

            </EventTrigger>

        </Grid.Triggers>

 

        <DatePicker Name="DatePicker1">

            <!-- Nidifico la proprietà Background in questo modo, così da poter assegnare un identificatore a cui punta l'animazione -->

            <DatePicker.Background>

                <!--Il colore di default è il Transparent-->

                <SolidColorBrush Color="#00000000" x:Name="DatePickerBack"/>

            </DatePicker.Background>

        </DatePicker>

    </Grid>

Alessandro

Print | posted on giovedì 15 aprile 2010 23:15 | Filed Under [ Windows Presentation Foundation ]

Powered by:
Powered By Subtext Powered By ASP.NET