VisualStateManager Classe

Définition

Gère les états et la logique de transition entre les états des contrôles.

public ref class VisualStateManager : System::Windows::DependencyObject
public class VisualStateManager : System.Windows.DependencyObject
type VisualStateManager = class
    inherit DependencyObject
Public Class VisualStateManager
Inherits DependencyObject
Héritage

Exemples

L’exemple suivant crée un Rectangle et ajoute un VisualStateGroup nommé CommonStates à la VisualStateManager.VisualStatesGroups propriété jointe. L’exemple définit les MouseOver objets et NormalVisualState dans le CommonStatesVisualStateGroup. Lorsque l’utilisateur déplace le pointeur de la souris sur , Rectangleil passe du rouge au vert pendant une demi-seconde. Lorsque l’utilisateur éloigne la souris du rectangle, le Grid redevient immédiatement rouge. Notez que l’état Normal ne définit pas de Storyboard. Un Storyboard n’est pas obligatoire, car lorsque le Rectangle passe de l’état MouseOver à l’état Normal , le Storyboard pour MouseOver est arrêté et la Color propriété pour le SolidColorBrush retourne en rouge.

<Rectangle Name="rect" 
           Width="100" Height="100"
           MouseEnter="rect_MouseEvent" 
           MouseLeave="rect_MouseEvent">
  <VisualStateManager.VisualStateGroups>
    <VisualStateGroup Name="MouseStates">
      <VisualState Name="MouseEnter">
        <Storyboard>
          <ColorAnimation To="Green" 
                          Storyboard.TargetName="rectBrush" 
                          Storyboard.TargetProperty="Color"/>
        </Storyboard>
      </VisualState>
      <VisualState Name="MouseLeave" />
      <VisualStateGroup.Transitions>
        <VisualTransition To="MouseLeave" GeneratedDuration="00:00:00"/>

        <VisualTransition To="MouseEnter" GeneratedDuration="00:00:00.5">
          <VisualTransition.GeneratedEasingFunction>
            <ExponentialEase EasingMode="EaseOut" Exponent="10"/>
          </VisualTransition.GeneratedEasingFunction>
        </VisualTransition>

      </VisualStateGroup.Transitions>
    </VisualStateGroup>
  </VisualStateManager.VisualStateGroups>

  <Rectangle.Fill>
    <SolidColorBrush x:Name="rectBrush" Color="Red"/>
  </Rectangle.Fill>
</Rectangle>

L’exemple suivant montre le gestionnaire d’événements défini dans l’exemple précédent et appelle la GoToElementState méthode pour passer d’un état à l’autre. Si le rectangle de l’exemple précédent faisait partie d’un ControlTemplate, l’exemple doit appeler la GoToState méthode .

private void rect_MouseEvent(object sender, MouseEventArgs e)
{
    if (rect.IsMouseOver)
    {
        VisualStateManager.GoToElementState(rect, "MouseEnter", true);
    }
    else
    {
        VisualStateManager.GoToElementState(rect, "MouseLeave", true);
    }
}
Private Sub rect_MouseEvent(ByVal sender As Object, ByVal e As MouseEventArgs)
    If rect.IsMouseOver Then
        VisualStateManager.GoToElementState(rect, "MouseEnter", True)
    Else
        VisualStateManager.GoToElementState(rect, "MouseLeave", True)
    End If
End Sub

Remarques

le VisualStateManager vous permet de spécifier les états d’un contrôle, l’apparence d’un contrôle lorsqu’il est dans un état donné et quand un contrôle change d’état. Par exemple, une Button peut avoir une apparence légèrement différente lorsqu’elle est enfoncée et quand elle n’est pas enfoncée. Deux états auxquels correspond le Button définit lorsqu’il est appuyé ("Pressed") et quand il n’est pas ("Normal"). L’apparence d’un contrôle lorsqu’il est dans un état est définie par un VisualState. Un VisualState contient une collection d’objets Storyboard qui spécifient comment l’apparence du contrôle change lorsque le contrôle se trouve dans cet état. Vous ajoutez des états visuels à un contrôle en définissant la VisualStateManager.VisualStateGroups propriété jointe sur le contrôle. Chacun VisualStateGroup contient une collection d’objets qui s’excluent VisualState mutuellement. Autrement dit, le contrôle est toujours dans un état précis de dans chaque VisualStateGroup.

Le VisualStateManager vous permet également de spécifier quand un contrôle entre dans un état spécifique. La méthode que vous devez appeler pour modifier les états dépend de votre scénario. Si vous créez un contrôle qui utilise dans VisualStateManager son ControlTemplate, appelez la GoToState méthode . Pour plus d’informations sur la création de contrôles qui utilisent , VisualStateManagerconsultez Création d’un contrôle ayant une apparence personnalisable. Si vous utilisez l’extérieur VisualStateManager d’un ControlTemplate (par exemple, si vous utilisez un VisualStateManager dans un UserControl ou dans un élément unique), appelez la GoToElementState méthode . Dans les deux cas, exécute VisualStateManager la logique nécessaire pour démarrer et arrêter correctement les storyboards associés à l’état impliqué. Par exemple, supposons qu’un contrôle définit les états, State1 et State2, chacun d’eux ayant un storyboard associé. Si le contrôle se trouve dans State1 et que vous passez State2 à GoToState ou GoToElementState, VisualStateManager démarre le storyboard dans State2 et arrête le storyboard dans State1.

Les contrôles inclus dans Windows Presentation Foundation (WPF) utilisent pour modifier les VisualStateManager états visuels. Lorsque vous créez un pour un contrôle inclus dans WPF, vous pouvez ajouter VisualState des ControlTemplate objets au contrôle ControlTemplate pour spécifier l’apparence du contrôle dans un état donné. Pour trouver les noms des états visuels pour les contrôles inclus dans WPF, consultez Styles et modèles de contrôle. La logique du contrôle gère la transition entre les états. Vous n’avez donc pas besoin d’effectuer autre chose que de définir les VisualState objets dans le nouveau ControlTemplate. Pour plus d’informations sur la création de modèles de contrôle pour des contrôles existants, consultez Personnalisation de l’apparence d’un contrôle existant en créant un ControlTemplate.

Si vous souhaitez implémenter votre propre logique de transition entre les états, vous devez hériter de VisualStateManager, remplacer la GoToStateCore méthode et définir la VisualStateManager.CustomVisualStateManager propriété jointe sur le contrôle qui utilise la logique personnalisée.

Constructeurs

VisualStateManager()

Initialise une nouvelle instance de la classe VisualStateManager.

Champs

CustomVisualStateManagerProperty

Identifie la propriété de dépendance CustomVisualStateManager.

VisualStateGroupsProperty

Identifie la propriété de dépendance VisualStateGroups.

Propriétés

DependencyObjectType

Obtient le DependencyObjectType qui encapsule le type CLR de ce instance.

(Hérité de DependencyObject)
Dispatcher

Obtient le Dispatcher associé à DispatcherObject.

(Hérité de DispatcherObject)
IsSealed

Récupère une valeur qui indique si cette instance est actuellement sealed (en lecture seule).

(Hérité de DependencyObject)

Propriétés attachées

CustomVisualStateManager

Obtient ou définit l'objet VisualStateManager qui effectue la transition entre les états d'un contrôle.

VisualStateGroups

Obtient ou définit une collection d’objets VisualStateGroup.

Méthodes

CheckAccess()

Détermine si le thread appelant a accès à ce DispatcherObject.

(Hérité de DispatcherObject)
ClearValue(DependencyProperty)

Efface la valeur locale d’une propriété. La propriété à effacer est spécifiée par un identificateur DependencyProperty.

(Hérité de DependencyObject)
ClearValue(DependencyPropertyKey)

Efface la valeur locale d’une propriété en lecture seule. La propriété à effacer est spécifiée par DependencyPropertyKey.

(Hérité de DependencyObject)
CoerceValue(DependencyProperty)

Convertit la valeur de la propriété de dépendance spécifiée. Pour cela, on appelle toute fonction CoerceValueCallback spécifiée dans les métadonnées de propriété pour la propriété de dépendance telle qu’elle existe sur le DependencyObject appelant.

(Hérité de DependencyObject)
Equals(Object)

Détermine si un DependencyObject fourni est équivalent au DependencyObject réel.

(Hérité de DependencyObject)
GetCustomVisualStateManager(FrameworkElement)

Obtient la propriété jointe CustomVisualStateManager.

GetHashCode()

Obtient un code de hachage pour ce DependencyObject.

(Hérité de DependencyObject)
GetLocalValueEnumerator()

Crée un énumérateur spécialisé pour déterminer quelles propriétés de dépendance ont des valeurs définies localement sur ce DependencyObject.

(Hérité de DependencyObject)
GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
GetValue(DependencyProperty)

Retourne la valeur effective actuelle d’une propriété de dépendance sur cette instance d’un DependencyObject.

(Hérité de DependencyObject)
GetVisualStateGroups(FrameworkElement)

Obtient la propriété jointe VisualStateGroups.

GoToElementState(FrameworkElement, String, Boolean)

Assure la transition de l'élément entre deux états. Utilisez cette méthode pour le changement d'états défini par une application, plutôt qu'un contrôle.

GoToState(FrameworkElement, String, Boolean)

Fait passer le contrôle d'un état à un autre. Utilisez cette méthode pour le changement d'état sur un contrôle qui a un ControlTemplate.

GoToStateCore(FrameworkElement, FrameworkElement, String, VisualStateGroup, VisualState, Boolean)

Effectue la transition d'un contrôle entre états.

InvalidateProperty(DependencyProperty)

Réévalue la valeur effective de la propriété de dépendance spécifiée.

(Hérité de DependencyObject)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

Méthode appelée chaque fois que la valeur effective d’une propriété de dépendance sur ce DependencyObject a été mise à jour. La propriété de dépendance spécifique qui a changé est signalée dans les données d’événement.

(Hérité de DependencyObject)
RaiseCurrentStateChanged(VisualStateGroup, VisualState, VisualState, FrameworkElement, FrameworkElement)

Déclenche l'événement CurrentStateChanging sur l'objet VisualStateGroup spécifié.

RaiseCurrentStateChanging(VisualStateGroup, VisualState, VisualState, FrameworkElement, FrameworkElement)

Déclenche l'événement CurrentStateChanging sur l'objet VisualStateGroup spécifié.

ReadLocalValue(DependencyProperty)

Retourne la valeur locale d’une propriété de dépendance, si elle existe.

(Hérité de DependencyObject)
SetCurrentValue(DependencyProperty, Object)

Définit la valeur d’une propriété de dépendance sans modifier sa valeur source.

(Hérité de DependencyObject)
SetCustomVisualStateManager(FrameworkElement, VisualStateManager)

Définit la propriété jointe CustomVisualStateManager.

SetValue(DependencyProperty, Object)

Définit la valeur locale d’une propriété de dépendance, spécifiée par son identificateur de propriété de dépendance.

(Hérité de DependencyObject)
SetValue(DependencyPropertyKey, Object)

Définit la valeur locale d’une propriété de dépendance en lecture seule, spécifiée par l’identificateur DependencyPropertyKey de la propriété de dépendance.

(Hérité de DependencyObject)
ShouldSerializeProperty(DependencyProperty)

Retourne une valeur qui indique si les processus de sérialisation doivent sérialiser la valeur de la propriété de dépendance fournie.

(Hérité de DependencyObject)
ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)
VerifyAccess()

Garantit que le thread appelant a accès à DispatcherObject.

(Hérité de DispatcherObject)

S’applique à