C# :: Aufgabe #10 :: Lösung #2
6 Lösungen

#10
Color ValueConverter für XAML - Ampelstatus
Fortgeschrittener - C#
von pocki
- 28.08.2012 um 09:59 Uhr
Schreibe einen ValueConverter für XAML (WPF, Silverlight) wobei je nach Integer-Wert (Variable Zustand) eine Ellipse eine bestimmte Farbe zugewiesen wird.
Verwende folgenden XAML-Ansatz:
XML-Code
Wobei die Zuordnung wiefolgt sein soll:
C#-Code
Verwende folgenden XAML-Ansatz:

<Ellipse Fill={Binding Path=Zustand, Converter={StaticResource ResourceKey=StateToColorConverter}, ConverterParameter=Red;Orange;Green}/>
Wobei die Zuordnung wiefolgt sein soll:

Zustand=1; //Red Zustand=2; //Orange Zustand=3; //Green //Für alle anderen Zustandswerte: Transparent
#2

von aheiland (650 Punkte)
- 11.03.2015 um 12:58 Uhr
ich bin nicht ganz zufrieden mit der lösung
XML-Code
C#-Code

<Window.Resources> <l:StateToColorConverter x:Key="StateToColorConverter"/> </Window.Resources> <Grid> <Ellipse Height="100" Fill="{Binding Path=Zustand, Converter={StaticResource ResourceKey=StateToColorConverter }, ConverterParameter=Red;Orange;Green}"/> </Grid>

public class StateToColorConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { string[] colors = (parameter as string).Split(';'); int state = value != null ? (int) value : colors.Length; if (state == 0) return "Transparent"; return colors[state-1]; } public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { return null; } }
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1