ASP.Net  »  Guide  »  Guida Silverlight 

Definire gli stati dei controlli



Gli stati sono raggruppati in gruppi logici, nella tabella seguente sono elencati tutti gli stati ed i relativi gruppi del controllo Button.

StatoGruppo
UnfocusedFocusStates
FocusedFocusStates
MouseOverCommonStates
NormalCommonStates
PressedCommonStates
DisabledCommonStates

La gestione della variazione degli stati dei controlli è a carico di Silverlight, per la precisione al componente VisualStateManager. Riprendiamo l'esempio della lezione precedente e introduciamo un apposito namespace.

xmlns:vsm="clr-namespace:System.Windows;assembly=System.Windows"

Successivamente all'interno del Panel Control Grid definiamo le animazioni nei vari stati.

<Button Content="Click Me!" Height="100" Width="150" FontSize="20">
  <Button.Template>
    <ControlTemplate>
      <Grid>
        <vsm:VisualStateManager.VisualStateGroups>
          <vsm:VisualStateGroup x:Name="CommonStates">
            
            <vsm:VisualStateGroup.Transitions>
              <vsm:VisualTransition GeneratedDuration="0:0:.2" />
            </vsm:VisualStateGroup.Transitions>
            
            <vsm:VisualState x:Name="Normal" />
            
            <vsm:VisualState x:Name="MouseOver">
              <Storyboard>
                <ColorAnimation Storyboard.TargetName="BorderBrush"
                                Storyboard.TargetProperty="Color"
                                To="Yellow" />
              </Storyboard>
            </vsm:VisualState>
            
            <vsm:VisualState x:Name="Pressed">
              <Storyboard>
                <DoubleAnimation Storyboard.TargetName="BackgroundEllipse"
                                 Storyboard.TargetProperty="Opacity"
                                 Duration="0"
                                 To="0" />
              </Storyboard>
            </vsm:VisualState>
            
          </vsm:VisualStateGroup>
        </vsm:VisualStateManager.VisualStateGroups>
        ...
      </Grid>
    </ControlTemplate>
  </Button.Template>
</Button>

Le modifiche applicate sono due. La prima avviene quando posizioniamo il mouse sopra il Button, in questo caso cambiamo il colore del bordo. L'altra avviene quando clicchiamo sul controllo, in questo scenario l'ellisse che fa da sfondo diventerà trasparente.

Quando un controllo entra in un determinato stato viene avviata la relativa animazione ed interrotta quella precedente.

Ultimi articoli ASP.Net

LINQ e la trappola della 'deferred execution'

Una "trappola" in cui si può incappare utilizzando il risultato di...

C#, le Custom Type Conversion

Conversioni personalizzate tra classi, creare metodi particolari per...

Introduzione a Entity Framework

Il framework ORM messo a disposizione da .NET

Repeater: visualizzare un feed RSS

Utilizzare il controllo XMLDataSource e sfruttare il metodo XPath()...

Repeater, il server control "semplice"

Cos'è e come funziona il controllo Repeater

Altri articoli

Guide ASP.Net

Guida ASP.NET MVC Best Practices

Un workflow dettagliato e ricco di suggerimenti pratici per...

Guida ASP.NET Starter Kit

Un modo semplice per imparare ad utilizzare le tecnologie Microsoft...

Guida Visual Studio 2010

L'ambiente di sviluppo di riferimento per sviluppare applicazioni su...

Altre guide

Newsletter @Microsoft Dev

Ogni giovedì, direttamente nella tua e-mail: articoli, guide, tutorial e script ASP, ASP.Net, SQL server e IIS.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso Progettazione database

11 Maggio 2012 a Milano
Disponibilità: 6 Posti

Amministratore di Reti Windows Server 2008

11 Giugno 2012 a Milano
Disponibilità: 5 Posti

Nessun corso previsto