2010-10-06 5 views
14

J'ai un bouton normal et TextBox dans une fenêtre WPF et je veux un modèle pour le bouton avec un EventTrigger qui écoute Button.Click, puis définit une propriété booléenne de la TextBox. Pas de code derrière.EventTrigger avec Setter dans WPF?

Quelque chose comme ceci:

<ControlTemplate.Triggers> 
    <EventTrigger SourceName="MyButton" RoutedEvent="Button.Click"> 
    <Setter TargetName="MyTextBox" Property="Focusable" Value="False" /> 
    </EventTrigger> 

Répondre

14

Voici un exemple qui définit et efface Focusable sur une zone de texte à partir d'un EventTrigger.
J'espère que vous pouvez adapter cet exemple à votre situation.

<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition/> 
     <RowDefinition/> 
     <RowDefinition/> 
    </Grid.RowDefinitions> 
    <TextBox 
     x:Name="tb" 
     Grid.Row="0" 
     Text="Here is some sample text"> 
    </TextBox> 
    <Button 
     x:Name="btnFocusTrue" 
     Grid.Row="1" 
     Content="Set True"> 
    </Button> 
    <Button 
     x:Name="btnFocusFalse" 
     Grid.Row="2" 
     Content="Set False"> 
    </Button> 
    <Grid.Triggers> 
     <EventTrigger RoutedEvent="Button.Click" SourceName="btnFocusTrue"> 
      <BeginStoryboard Name="FocusTrueStoryboard"> 
       <Storyboard > 
        <BooleanAnimationUsingKeyFrames 
         Storyboard.TargetName="tb" 
         Storyboard.TargetProperty="(TextBox.Focusable)"> 
         <DiscreteBooleanKeyFrame 
          KeyTime="00:00:01" 
          Value="True" /> 
        </BooleanAnimationUsingKeyFrames> 
       </Storyboard> 
      </BeginStoryboard> 
     </EventTrigger> 
     <EventTrigger RoutedEvent="Button.Click" SourceName="btnFocusFalse"> 
      <BeginStoryboard Name="FoucsFalseStoryboard"> 
       <Storyboard > 
        <BooleanAnimationUsingKeyFrames 
         Storyboard.TargetName="tb" 
         Storyboard.TargetProperty="(TextBox.Focusable)"> 
         <DiscreteBooleanKeyFrame 
          KeyTime="00:00:01" 
          Value="False" /> 
        </BooleanAnimationUsingKeyFrames> 
       </Storyboard> 
      </BeginStoryboard> 
     </EventTrigger> 
    </Grid.Triggers> 
</Grid> 
+2

Ahhh manqué les images clés des classes discrètes * ... sa solution à mon problème mais son beaucoup de XAML pour une telle tâche simple ... Je souhaite là où une version plus courte –

+0

Comment peut-on définir la valeur de propriété de dépendance personnalisée dans le déclencheur d'événement? – Ujjwal27

Questions connexes