XAML vs Fluxx

Below are examples of XAML - especially verbose XAML - and how that would be expressed in Fluxx. These examples taken from real apps.

Hide Content Based on enum Values

XAML
<ConventView>
    <ContentView.Triggers>
        <DataTrigger
            Binding="{Binding Item.Type, Converter={StaticResource EnumToIntConverter}}"
            TargetType="ContentView"
            Value="7">
            <Setter Property="IsVisible" Value="False">
        </DataTrigger>
        <DataTrigger
            Binding="{Binding Item.Type, Converter={StaticResource EnumToIntConverter}}"
            TargetType="ContentView"
            Value="8">
            <Setter Property="IsVisible" Value="False">
        </DataTrigger>
    </ConventView.Triggers>
<ConventView>
Fluxx
<ConventView
    if Item.Type is MyEnum.EnumValue1 or MyEnum.EnumValue2
        IsVisible=false
    /if
/ConventView>

If User Profile Notes are Empty Set Row Height 0, Else 38

XAML
<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition Height="{Binding Profile.Notes, Converter={StaticResource ZeroGridLengthIfStringEmptyConverter}, ConverterParameter=38}" />
    </Grid.RowDefinitions>
</Grid>
Fluxx
<Grid
    RowDefinitions =
        <RowDefinition Height=Auto />
        <RowDefinition Height=if Profile.Notes.Length == 0 => 0; else => 38 /if />
/Grid>

If Switched Count >= 1, Use Gradient

XAML
<svg:SvgIcon>
    <svg:SvgIcon.Triggers>
        <DataTrigger
            Binding="{Binding Source={x:Reference ThisControl}, Path=SwitchedCount, Converter={converters:IntIsEqualOrMoreConverter}, ConverterParameter=1}"
            TargetType="svg:SvgIcon"
            Value="True">
            <Setter Property="UseGradient" Value="True" />
        </DataTrigger>
    </svg:SvgIcon.Triggers>
</svg:SvgIcon>
Fluxx
<svg.SvgIcon
    if ThisControl.SwitchedCount >= 1
        UseGradient=True
    /if
/svg.SvgIcon>

Set End Color to 10% Lighter

XAML
<svg1:GradientBox
    EndColor="{Binding AvatarFormsColor, Converter={converters:MakeLighter}, ConverterParameter=10}"
    HorizontalOptions="Fill"
    StartColor="{Binding AvatarFormsColor}"
    VerticalOptions="Fill" />
Fluxx
<svg1.GradientBox
    EndColor=@AvatarFormsColor.MakeLighter(10)
    HorizontalOptions=Fill
    StartColor=@AvatarFormsColor
    VerticalOptions=Fill />

Add Small Indicator Over Avator with Online Status

XAML
<Ellipse
    Margin="5,5,0,0"
    Fill="{xaml:SetBrush SolidColor={x:StaticResource ColorPrimary}}"
    HeightRequest="12"
    HorizontalOptions="Start"
    StrokeThickness="0.0"
    VerticalOptions="Start"
    WidthRequest="12">
    <Ellipse.Triggers>
        <DataTrigger
            Binding="{Binding OtherUser.OnlineStatus}"
            TargetType="Ellipse"
            Value="0">
            <Setter Property="Fill" Value="{xaml:SetBrush SolidColor={x:StaticResource ColorPaperSecondary}}" />
        </DataTrigger>
        <DataTrigger
            Binding="{Binding OtherUser.OnlineStatus}"
            TargetType="Ellipse"
            Value="1">
            <Setter Property="Fill" Value="#35D057" />
        </DataTrigger>
        <DataTrigger
            Binding="{Binding OtherUser.OnlineStatus}"
            TargetType="Ellipse"
            Value="2">
            <Setter Property="Fill" Value="{xaml:SetBrush SolidColor={x:StaticResource ColorDanger}}" />
        </DataTrigger>
    </Ellipse.Triggers>
</Ellipse>
Fluxx
<Ellipse
    Margin=5,5,0,0
    Fill=<SolidColorBrush @ColorPrimary/>
    HeightRequest=12
    HorizontalOptions=Start
    StrokeThickness=0.0
    VerticalOptions=Start
    WidthRequest=12
    Fill=
        if OtherUser.OnlineStatus is
            0 => <SolidColorBrush @ColorPaperSecondary/>
            1 => <SolidColorBrush #35D057/>
            2 => <SolidColorBrush @ColorDanger/>
        /if
/Ellipse>

Update UI Based on Busy Status and If Options Provided

XAML
<input:ButtonMedium.Triggers>
    <DataTrigger
        Binding="{Binding IsBusy, Converter={converters:NotConverter}}"
        TargetType="input:ButtonMedium"
        Value="True">
        <Setter Property="Look" Value="Default" />
    </DataTrigger>
    <DataTrigger
        Binding="{Binding IsBusy}"
        TargetType="input:ButtonMedium"
        Value="True">
        <Setter Property="Look" Value="Disabled" />
    </DataTrigger>
    <DataTrigger
        Binding="{Binding Item.TestOptions, Converter={StaticResource StringNotEmptyConverter}}"
        TargetType="input:ButtonMedium"
        Value="True">
        <Setter Property="Text" Value="{x:Static resX:ResStrings.TestVariants }" />
    </DataTrigger>
    <DataTrigger
        Binding="{Binding Item.TestOptions, Converter={StaticResource StringNotEmptyConverter}}"
        TargetType="input:ButtonMedium"
        Value="False">
        <Setter Property="Text" Value="{x:Static resX:ResStrings.NeedSpecify }" />
    </DataTrigger>
</input:ButtonMedium.Triggers>
...
Fluxx
<ButtonMedium
    Look=if !IsBusy => Default; else => Disabled /if
    Text=<uitext id=if Item.TestOptions.Length > 0 => TestVariants; else => NeedSpecify /if />
    ...
/ButtonMedium>