Boolean Converters
These converters map bool values into colors, visibility states, or arbitrary values for UI binding scenarios.
BoolToColorConverter
- Purpose: Converts a
boolinto aSolidColorBrush(default: Green fortrue, Red forfalse) - Constructor Parameters:
trueColor: Color to use when value istrue(default:Colors.Green)falseColor: Color to use when value isfalse(default:Colors.Red)
Basic Usage Example
xml
<TextBlock Text="Online Status"
Foreground="{Binding IsOnline, Converter={StaticResource BoolToColorConverter}}" />Custom Colors Example
xml
<converters:BoolToColorConverter x:Key="CustomBoolToColor"
TrueColor="Blue"
FalseColor="Gray" />BoolToStatusColorConverter
- Namespace:
GenHub.Infrastructure.Converters - Purpose: Converts a
boolinto a status hex color string (#4CAF50for true,#F44336for false) - Return Type:
string(hex color code)
Status Color Usage
xml
<Border Background="{Binding IsConnected, Converter={StaticResource BoolToStatusColorConverter}}" />BoolToValueConverter
- Namespace:
GenHub.Infrastructure.Converters - Purpose: Converts a
boolinto custom values specified byTrueValueandFalseValueproperties - Properties:
TrueValue: Object to return when input istrueFalseValue: Object to return when input isfalse
Value Converter Usage
xml
<converters:BoolToValueConverter x:Key="BoolToTextConverter"
TrueValue="Enabled"
FalseValue="Disabled" />
<TextBlock Text="{Binding IsEnabled, Converter={StaticResource BoolToTextConverter}}" />Property Configuration
xml
<converters:BoolToValueConverter x:Key="BoolToVisibilityConverter"
TrueValue="Visible"
FalseValue="Collapsed" />
<Button IsVisible="{Binding CanSave, Converter={StaticResource BoolToVisibilityConverter}}" />BoolToVisibilityConverter
- Purpose: Converts a
boolinto"Visible"or"Collapsed"string for Avalonia visibility binding - Return Type:
string("Visible" or "Collapsed")
Visibility Usage
xml
<Button Content="Save"
IsVisible="{Binding CanSave, Converter={StaticResource BoolToVisibilityConverter}}" />InvertedBoolToVisibilityConverter
- Purpose: Inverse of
BoolToVisibilityConverter—true→ "Collapsed",false→ "Visible" - Return Type:
string("Visible" or "Collapsed")
Inverted Visibility Usage
xml
<TextBlock Text="No results found"
IsVisible="{Binding HasResults, Converter={StaticResource InvertedBoolToVisibilityConverter}}" />Real Usage Patterns
xml
<!-- Status color indicators -->
<Border Background="{Binding IsConnected, Converter={StaticResource BoolToStatusColorConverter}}" />
<!-- Conditional visibility for buttons -->
<Button Content="Launch Game"
IsVisible="{Binding CanLaunch, Converter={StaticResource BoolToVisibilityConverter}}" />
<!-- Inverted visibility for error messages -->
<TextBlock Text="Game not found"
IsVisible="{Binding GameExists, Converter={StaticResource InvertedBoolToVisibilityConverter}}" />
<!-- Custom text values -->
<TextBlock Text="{Binding IsInstalled, Converter={StaticResource BoolToValueConverter},
ConverterParameter='Installed;Not Installed'}" />Real Usage in Game Profile Scenarios
xml
<!-- Profile validation status -->
<Border Background="{Binding IsValid, Converter={StaticResource BoolToStatusColorConverter}}"
CornerRadius="4" Padding="8">
<TextBlock Text="{Binding IsValid, Converter={StaticResource BoolToValueConverter},
ConverterParameter='Valid Profile;Invalid Profile'}" />
</Border>
<!-- Launch button visibility -->
<Button Content="Launch"
IsVisible="{Binding CanLaunch, Converter={StaticResource BoolToVisibilityConverter}}" />
<!-- Error message visibility -->
<TextBlock Text="Please select a game version"
IsVisible="{Binding HasSelectedVersion, Converter={StaticResource InvertedBoolToVisibilityConverter}}" />Real Usage in GameProfileLauncherView.axaml
xml
<!-- Edit mode background toggle using BoolToColorConverter with custom colors -->
<Border Background="{Binding IsEditMode, Converter={StaticResource EditModeToggleBackgroundConverter}, Mode=OneWay}" />Where EditModeToggleBackgroundConverter is defined as:
xml
<conv:BoolToColorConverter x:Key="EditModeToggleBackgroundConverter" TrueColor="#1E88E5" FalseColor="#333333" />This demonstrates how BoolToColorConverter can be customized with specific colors for different UI contexts.
