2010-03-09 4 views
1

Quelqu'un at-il un exemple fonctionnel de l'utilisation des déclencheurs dans un modèle de bouton Silverlight à l'aide des dll Microsoft.Expression.Interactivity?Déclencheurs Silverlight dans un modèle de bouton?

Je souhaite répondre à l'événement click dans un modèle de bouton défini dans un style, en déclenchant une animation.

+0

Un modèle de bouton a des états prédéfinis (vous n'avez pas besoin de configurer les déclencheurs). Utilisez-vous Blend? Version 3? – Jay

+0

L'événement de clic du bouton n'a pas d'état correspondant. Il n'y a pas d'état "Clic". Alors oui, les déclencheurs sont nécessaires. – Arash

Répondre

0

semble que ce n'était pas possible à ce moment-là.

0

Vous pouvez toujours utiliser VisualStateManager et passer à l'état "Click" en gérant l'événement click d'un bouton.

void myButton_Click(object sender, RoutedEventArgs) 
{ 
    VisualStateManager.GoToState(this, "Click", true); 
} 

Vous devrez également définir un style et un état dans le code XAML.

<Style x:Key="ButtonStyle" TargetType="Button">  
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="Button"> 
         <VisualStateManager.VisualStateGroups> 
          <VisualStateGroup x:Name="StateGroup"> 
           <VisualState x:Name="ActiveLink"> 
            <Storyboard> 
             //animations go here 
           ... 

Aussi, rappelez-vous que les objets Button ont un tas d'états prédéfinir comme handicapés, Pressé (Cliquez?), MouseOver et Normal.

+0

Pressé n'est pas le même que Click - ce sont deux choses totalement différentes. Les modèles n'ont pas de code-behind correspondant. Les déclencheurs ont été ajoutés à Silverlight via Interactivity.dll, je n'arrive pas à trouver beaucoup de documentation sur la façon de les utiliser – Arash

2

Vous voulez utiliser un EventTrigger que les incendies un GoToStateAction

<Button x:Name="button" Height="53" HorizontalAlignment="Left" Margin="173,124,0,0" VerticalAlignment="Top" Width="147" Content="Button"> 
    <i:Interaction.Triggers> 
     <i:EventTrigger EventName="Click"> 
      <ic:GoToStateAction TargetName="checkBox" StateName="Checked"/> 
     </i:EventTrigger> 
    </i:Interaction.Triggers> 
</Button> 
<CheckBox x:Name="checkBox" Height="24" HorizontalAlignment="Left" Margin="173,206,0,0" VerticalAlignment="Top" Width="147" Content="CheckBox"/> 

Pour ce faire, dans le mélange vous traînerait un GoToStateAction sur le bouton puis définissez la propriété TargetName à la cible UIElement et la propriété StateName à la état désiré.

+0

Cela ne fait pas partie d'un modèle - n'est-il pas possible de le faire dans un modèle? Je veux que tous les boutons aient la même animation une fois cliqué. – Arash

Questions connexes