Domanda

Sono molto nuovo a WPF e sto di fronte a un problema in cui ho bisogno di aiuto:

Il mio ambiente è .net 4, VS2010, vincere 7

voglio definire un nello stile di pulsante che userò da un controllo utente a ginocchiera. Quando mi dichiaro il controllo ToggleButton nel UserControl voglio dare le 2 possibili contenuti a seconda dello stato pulsante.

La mia domanda:. Non so come dichiarare il mio tasto con le 2 contenuti (uno quando IsChecked = true, uno quando IsChecked = false), mi hanno incluso un certo codice che ho scritto che non si compila

Grazie in anticipo

...

È stato utile?

Soluzione

Si dovrebbe essere in grado di usare qualcosa come:

      <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>

Altri suggerimenti

A seconda di ciò che i vostri 2 contenuti sono, si può fare qualcosa di simile:

<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>

In questo esempio il ToggleButton ha un contenuto quando è (un tasto) e altri contenuti quando non viene controllato (uno sfondo bordo rosso) selezionata. Si dovrà gestire le azioni per attivare o disattivare lo stato IsChecked separatamente.

Inoltre una cosa, se la ToggleButton è l'unico controllo in UserControl non v'è alcuna necessità di utilizzare un controllo utente, basta restyle il ToggleButton. UserControls sono più appropriato quando si desidera controlli di gruppo insieme per avere una funzionalità specifica (come una casella di ricerca di testo e un pulsante Go per essere utilizzati insieme come un controllo di ricerca).

È possibile lo stile del ToggleButton impostando ControlTemplate

WPF ControlTemplate trigger punta . questo vi aiuterà a

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top