Click to Rate and Give Feedback
MSDN
MSDN Library
Web Development
Silverlight
Silverlight 2

  Switch on low bandwidth view
This page is specific to
Microsoft Silverlight 2

Other versions are also available for the following:
.NET Framework Class Library for Silverlight
VisualStateManager Class

Manages states and the logic for transitioning between states for controls.

Namespace:  System.Windows
Assembly:  System.Windows (in System.Windows.dll)
Visual Basic (Declaration)
Public Class VisualStateManager _
    Inherits DependencyObject
Visual Basic (Usage)
Dim instance As VisualStateManager
C#
public class VisualStateManager : DependencyObject
XAML Object Element Usage
<vsm:VisualStateManager.VisualStateGroups>
oneOrMoreVisualStateGroups
</vsm:VisualStateManager.VisualStateGroups>

XAML Values

vsm

The prefix that maps to the System.Windows namespace and assembly. For the prefix vsm, the mapping is declared as xmlns:vsm="clr-namespace:System.Windows;assembly=System.Windows".

oneOrMoreVisualStateGroups

One or more object elements that is of type VisualStateGroup.

Template authors add VisualStateGroup objects the VisualStateManager.VisualStateGroups attached property to represent states of a control and Control authors transition between states by calling the GoToState method.

If you want to implement your own logic for transitioning between states, you must inherit from VisualStateManager, override the GoToStateCore method, and set the VisualStateManager..::.CustomVisualStateManager attached property on the control that uses the custom logic.

The VisualStateManager.VisualStateGroups Attached Property

The VisualStateManager.VisualStateGroups attached property contains VisualStateGroup objects. Each VisualStateGroup contains a collection of mutually exclusive VisualState objects. You set VisualStateManager.VisualStateGroups on the root element of a ControlTemplate.

The following example creates a simple ControlTemplate for a Button that contains one Grid. The example sets the VisualStateManager.VisualStateGroups property on the Grid. The VisualStateManager.VisualStateGroups contains one VisualStateGroup, called CommonStates, which defines the MouseOver and Normal VisualState objects. When the user puts the mouse over the Button, the Grid changes from green to red over one half second. When the user moves the mouse away from the button, the Grid immediately changes back to green.

<ControlTemplate TargetType="Button"
                 xmlns:vsm="clr-namespace:System.Windows;assembly=System.Windows">
  <Grid >
    <vsm:VisualStateManager.VisualStateGroups>
      <vsm:VisualStateGroup x:Name="CommonStates">

        <vsm:VisualStateGroup.Transitions>

          <!--Take one half second to trasition to the MouseOver state.-->
          <vsm:VisualTransition To="MouseOver" 
                              GeneratedDuration="0:0:0.5"/>
        </vsm:VisualStateGroup.Transitions>

        <vsm:VisualState x:Name="Normal" />

        <!--Change the SolidColorBrush, ButtonBrush, to red when the
            mouse is over the button.-->
        <vsm:VisualState x:Name="MouseOver">
          <Storyboard>
            <ColorAnimation Storyboard.TargetName="ButtonBrush" 
                            Storyboard.TargetProperty="Color" To="Red" />
          </Storyboard>
        </vsm:VisualState>
      </vsm:VisualStateGroup>
    </vsm:VisualStateManager.VisualStateGroups>
    <Grid.Background>
      <SolidColorBrush x:Name="ButtonBrush" Color="Green"/>
    </Grid.Background>
  </Grid>
</ControlTemplate>

Run this sample.

System..::.Object
  System.Windows..::.DependencyObject
    System.Windows..::.VisualStateManager
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.

Tags What's this?: Add a tag
Community Content   What is Community Content?
Add new content RSS  Annotations
Processing
© 2009 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Page view tracker