Question

Je suis très nouveau pour WPF et je suis face à un problème où je besoin d'aide:

Mon environnement est .net 4, VS2010, gagner 7

Je veux définir un bouton à bascule portant le titre que je vais utiliser à partir d'un contrôle de l'utilisateur. Quand je déclare le contrôle ToggleButton dans le UserControl je veux donner les 2 possibles Table des matières selon l'état du bouton.

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

Merci d'avance

                                                                                                                                      

                                       ...

Était-ce utile?

La solution

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>

Autres conseils

En fonction de 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 vérifié (un bouton) et tout autre contenu lorsqu'il est décochée (une frontière de fond rouge). Vous devrez gérer les actions pour basculer séparément l'état IsChecked.

Aussi une chose, si le ToggleButton est le seul contrôle dans votre UserControl il n'y a pas besoin d'utiliser un UserControl, juste restyle ToggleButton. UserControls sont plus appropriés lorsque vous voulez des commandes de groupe ainsi que d'avoir une fonctionnalité spécifique (comme une zone de texte de recherche et un bouton Go pour être utilisés ensemble comme un contrôle de recherche).

Vous pouvez définir le style ToggleButton en réglant ControlTemplate

WPF ControlTemplate Trigger pointe . cela vous aidera à

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top