Salü zäme
Ich möchte je nach Zustand des Toggle-Button die Backcolor ändern. Mit der Anpassung des Backcolors ändert sich lediglich die Farbe beim Zustand "False".
Bei Zustand des Controls für "True" wird permanent "LightBlue" angezeigt, egal, was ich bei Backcolor eintrage.
Offenbar wird im Control mit Definitionen in den Templates eine Steuerung des Farbverhaltens gemacht.
Wo finde ich eine entsprechende Dokumentation?
Wie muss ich grundsätzlich vorgehen, um die Farbe des Steuerelementes ToggleButton beim Status IsChecked = True zu ändern?
Leg mal eine Kopie des Originaltemplates an.
Darin siehst du dann, wie das alles aufgebaut ist und wo die Trigger ansetzen.
Um eine Kopie anzulegen, wählst du den ToggleButton im XAML aus, suchst im Property Explorer die Template-Eigenschaft und klickst dann auf das kleine Kästchen am rechten Rand. Dort wählst du "Convert to new Resource" aus und bestimmst, wo die Template-Kopie erzeugt werden soll.
Gruß
pinki
Hi BJA-CH,
Wie muss ich grundsätzlich vorgehen, um die Farbe des Steuerelementes ToggleButton beim Status IsChecked = True zu ändern?
Siehe dazu [Artikel] MVVM und DataBinding, Abschnitt 4. Styles und Trigger
Weeks of programming can save you hours of planning
Ich kann euch gerne zeigen wie ich den ToogleButton eingebaut habe:
<Grid>
<ToggleButton Width="50" Height="25" Name="button"
IsChecked="{Binding Path=Check, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
<ToggleButton.Style>
<Style TargetType="ToggleButton">
<Setter Property="Background" Value="White"/>
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=button, Path=IsChecked}" Value="True">
<Setter Property="Background" Value="Green"/>
<Setter Property="Content" Value="True"/>
</DataTrigger>
<DataTrigger Binding="{Binding ElementName=button, Path=IsChecked}" Value="False">
<Setter Property="Background" Value="Red"/>
<Setter Property="Content" Value="False"/>
</DataTrigger>
</Style.Triggers>
</Style>
</ToggleButton.Style>
</ToggleButton>
</Grid>
Wie ihr seht, wird bei Status False der Button rot gezeichnet. Beim Status True aber leider nicht grün wie verlangt, sondern LightBlue.
Und nein, ich kann kein Template zeigen, weil ich keines gebaut habe. ich möchte lediglich die Farbe des Controls je nach Staus verändern.
Das Control-Template des Toggle-Controls, wie von pinki beschrieben auslesen, dieses anpassen und lokal in die xaml-Definition einbinden...