2011-01-14 1 views
1

Je suis très nouveau pour WPF et je suis face à un problème où je besoin d'aide:Aide à essayer d'utiliser un ToggleButton dans un dictionnaire

Mon environnement est .net 4, VS2010, gagner 7

Je veux pour définir un bouton bascule style que je vais utiliser à partir d'un contrôle utilisateur. Lorsque je déclare le contrôle ToggleButton dans UserControl, je veux donner les 2 Contenus possibles en fonction de l'état du bouton.

Ma question: Je ne sais pas comment déclarer mon bouton avec les 2 contenus (un IsChecked = true, un IsChecked = false), j'ai inclus un code que j'ai écrit qui ne compile pas.

Nous vous remercions à l'avance

...

+0

Merci pour vos réponses, cela m'a vraiment aidé. –

Répondre

1

Vous devriez être en mesure d'utiliser quelque chose comme:

 <ToggleButton> 
     <ToggleButton.Style> 
      <Style TargetType="{x:Type ToggleButton}"> 
       <Setter Property="Content"> 
        <Setter.Value> 
         <Grid> 
          <TextBlock>Click Me</TextBlock> 
         </Grid> 
        </Setter.Value> 
       </Setter> 
       <Style.Triggers> 
        <Trigger Property="IsChecked" Value="True"> 
         <Setter Property="Content"> 
          <Setter.Value> 
           <Grid> 
            <TextBlock>Click Me Again</TextBlock> 
           </Grid> 
          </Setter.Value> 
         </Setter> 
        </Trigger> 
       </Style.Triggers> 
      </Style> 
     </ToggleButton.Style> 
    </ToggleButton> 
1

Selon ce que vos 2 contenus sont, vous pouvez faire quelque chose comme:

<ToggleButton IsChecked="True"> 
    <ToggleButton.Style> 
     <Style TargetType="{x:Type ToggleButton}"> 
      <Style.Triggers> 
       <Trigger Property="IsChecked" Value="True"> 
        <Setter Property="Template"> 
         <Setter.Value> 
          <ControlTemplate> 
           <Button></Button> 
          </ControlTemplate> 
         </Setter.Value> 
        </Setter> 
       </Trigger> 
       <Trigger Property="IsChecked" Value="False"> 
        <Setter Property="Template"> 
         <Setter.Value> 
          <ControlTemplate> 
           <Border Background="Red" /> 
          </ControlTemplate> 
         </Setter.Value> 
        </Setter> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 
    </ToggleButton.Style> 
</ToggleButton> 

Dans cet exemple, le ToggleButton a un contenu quand il est coché (un bouton) et autre contenu quand il n'est pas vérifié (une bordure de fond rouge). Vous devrez gérer les actions pour basculer l'état IsChecked séparément.

Également une chose, si le ToggleButton est le seul contrôle dans votre UserControl, il n'est pas nécessaire d'utiliser un UserControl, il suffit de relancer ToggleButton. UserControls est plus approprié lorsque vous souhaitez regrouper des contrôles pour avoir une fonctionnalité spécifique (comme une zone de texte de recherche et un bouton Go à utiliser ensemble comme contrôle de recherche).

Questions connexes