VisualStateManager Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Gère les états et la logique de transition entre les états pour les 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 nom CommonStates à la VisualStateManager.VisualStatesGroups propriété jointe. L’exemple définit les objets et Normalles objets dans le CommonStatesVisualStateGroup.MouseOverVisualState Lorsque l’utilisateur déplace le pointeur de la souris sur le Rectanglepointeur, il passe du rouge au vert sur une demi-seconde. Lorsque l’utilisateur déplace la souris loin du rectangle, il Grid revient immédiatement en rouge. Notez que l’état Normal ne définit pas un Storyboard. Il Storyboard n’est pas nécessaire car lorsque les Rectangle transitions de l’état MouseOver à l’état Normal sont StoryboardMouseOver arrêtées et que la Color propriété pour les SolidColorBrush retours en rouge est arrêtée.
<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 qui est 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 devait 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
Vous VisualStateManager pouvez spécifier des états pour un contrôle, l’apparence d’un contrôle lorsqu’il se trouve dans un état donné et lorsqu’un contrôle change d’état. Par exemple, une Button apparence peut être légèrement différente lorsqu’elle est enfoncée que lorsqu’elle n’est pas enfoncée. Deux états que les Button définitions correspondent au moment où elle est enfoncée ("Pressed") et quand elle n’est pas ("Normal"). L’apparence d’un contrôle lorsqu’il est dans un état est défini par un VisualState. A VisualState contient une collection d’objets Storyboard qui spécifient la façon dont l’apparence du contrôle change lorsque le contrôle est 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 chacun d’eux VisualStateGroup.
Vous VisualStateManager pouvez également 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 le VisualStateManager dans son ControlTemplate, appelez la GoToState méthode. Pour plus d’informations sur la création de contrôles qui utilisent le VisualStateManager, consultez Création d’un contrôle qui a 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 seul élément), appelez la GoToElementState méthode. Dans les deux cas, la VisualStateManager logique est 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 et State1State2, chacun d’entre eux a un storyboard associé à celui-ci. Si le contrôle est dans State1 et que vous passez State2 à GoToState ou GoToElementState, le VisualStateManager démarre le storyboard dans State2 et arrête le storyboard dans State1.
Les contrôles inclus dans Windows Presentation Foundation (WPF) utilisent les états visuels pour modifier les VisualStateManager états visuels. Lorsque vous créez un ControlTemplate contrôle inclus dans WPF, vous pouvez ajouter VisualState des objets aux contrôles pour spécifier l’apparence du contrôle ControlTemplate dans un certain état. Pour rechercher les noms des états visuels des 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 les contrôles existants, consultez Comment créer un modèle pour un contrôle.
Si vous souhaitez implémenter votre propre logique pour la transition entre les états, vous devez hériter VisualStateManagerde , 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
| Nom | Description |
|---|---|
| VisualStateManager() |
Initialise une nouvelle instance de la classe VisualStateManager. |
Champs
| Nom | Description |
|---|---|
| CustomVisualStateManagerProperty |
Identifie la CustomVisualStateManager propriété de dépendance. |
| VisualStateGroupsProperty |
Identifie la VisualStateGroups propriété de dépendance. |
Propriétés
| Nom | Description |
|---|---|
| DependencyObjectType |
Obtient le DependencyObjectType type CLR de cette instance. (Hérité de DependencyObject) |
| Dispatcher |
Obtient ce Dispatcher qui DispatcherObject est associé. (Hérité de DispatcherObject) |
| IsSealed |
Obtient une valeur qui indique si cette instance est actuellement scellée (en lecture seule). (Hérité de DependencyObject) |
Propriétés attachées
| Nom | Description |
|---|---|
| CustomVisualStateManager |
Obtient ou définit l’objet VisualStateManager qui passe entre les états d’un contrôle. |
| VisualStateGroups |
Obtient ou définit une collection d’objets VisualStateGroup . |
Méthodes
| Nom | Description |
|---|---|
| CheckAccess() |
Détermine si le thread appelant a accès à ce DispatcherObjectfichier . (Hérité de DispatcherObject) |
| ClearValue(DependencyProperty) |
Efface la valeur locale d’une propriété. La propriété à effacer est spécifiée par un DependencyProperty identificateur. (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 un DependencyPropertyKey. (Hérité de DependencyObject) |
| CoerceValue(DependencyProperty) |
Force la valeur de la propriété de dépendance spécifiée. Pour ce faire, appelez n’importe quelle CoerceValueCallback fonction spécifiée dans les métadonnées de propriété pour la propriété de dépendance telle qu’elle existe sur l’appel DependencyObject. (Hérité de DependencyObject) |
| Equals(Object) |
Détermine si un élément fourni DependencyObject est équivalent à l’actuel DependencyObject. (Hérité de DependencyObject) |
| GetCustomVisualStateManager(FrameworkElement) |
Obtient la CustomVisualStateManager propriété jointe. |
| 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 la 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 VisualStateGroups propriété jointe. |
| GoToElementState(FrameworkElement, String, Boolean) |
Fait passer l’élément entre deux états. Utilisez cette méthode pour passer des états définis par une application, plutôt que définis par un contrôle. |
| GoToState(FrameworkElement, String, Boolean) |
Effectue la transition du contrôle entre deux états. Utilisez cette méthode pour passer des états sur le contrôle qui a un ControlTemplate. |
| GoToStateCore(FrameworkElement, FrameworkElement, String, VisualStateGroup, VisualState, Boolean) |
Effectue la transition d’un contrôle entre les états. |
| InvalidateProperty(DependencyProperty) |
Évalue à nouveau la valeur effective de la propriété de dépendance spécifiée. (Hérité de DependencyObject) |
| MemberwiseClone() |
Crée une copie superficielle du Objectactuel. (Hérité de Object) |
| OnPropertyChanged(DependencyPropertyChangedEventArgs) |
Appelé chaque fois que la valeur effective d’une propriété de dépendance sur celle-ci 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 spécifié VisualStateGroup . |
| RaiseCurrentStateChanging(VisualStateGroup, VisualState, VisualState, FrameworkElement, FrameworkElement) |
Déclenche l’événement CurrentStateChanging sur l’objet spécifié VisualStateGroup . |
| ReadLocalValue(DependencyProperty) |
Retourne la valeur locale d’une propriété de dépendance, le cas échéant. (Hérité de DependencyObject) |
| SetCurrentValue(DependencyProperty, Object) |
Définit la valeur d’une propriété de dépendance sans modifier sa source de valeur. (Hérité de DependencyObject) |
| SetCustomVisualStateManager(FrameworkElement, VisualStateManager) |
Définit la CustomVisualStateManager propriété jointe. |
| 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() |
Applique que le thread appelant a accès à ce DispatcherObjectfichier . (Hérité de DispatcherObject) |