﻿<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    xmlns:local="clr-namespace:HMI.UI">
    <RadialGradientBrush x:Key="RedLight" GradientOrigin="0.3,0.3" 
                     RadiusX="0.7" 
                     RadiusY="0.7">
        <RadialGradientBrush.GradientStops>
            <GradientStop Color="#fd583e" Offset="0"/>
            <GradientStop Color="#d5341f" Offset="0.5"/>
            <GradientStop Color="#aa0e00" Offset="1"/>
        </RadialGradientBrush.GradientStops>
    </RadialGradientBrush>

    <RadialGradientBrush x:Key="GreenLight" GradientOrigin="0.3,0.3" 
                         RadiusX="0.7" 
                         RadiusY="0.7">
        <RadialGradientBrush.GradientStops>
            <GradientStop Color="#1b9e14" Offset="1"/>
            <GradientStop Color="#21c418" Offset="0.5"/>
            <GradientStop Color="#28ea1d" Offset="0"/>
        </RadialGradientBrush.GradientStops>
    </RadialGradientBrush>

    <Style TargetType="{x:Type local:LightBall}">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type local:LightBall}">
                    <StackPanel Orientation="Horizontal" VerticalAlignment="Center">
                        <Ellipse Height="{TemplateBinding Size}" Width="{TemplateBinding Size}" VerticalAlignment="Center">
                            <Ellipse.Style>
                                <Style TargetType="Ellipse">
                                    <Setter Property="Fill" Value="{StaticResource RedLight}"/>
                                    <Style.Triggers>
                                        <DataTrigger Binding="{Binding Value,RelativeSource={RelativeSource Mode=TemplatedParent}}" Value="True">
                                            <Setter Property="Fill" Value="{StaticResource GreenLight}"/>
                                        </DataTrigger>
                                    </Style.Triggers>
                                </Style>
                            </Ellipse.Style>
                        </Ellipse>
                        <ContentPresenter Margin="5,0,0,0" VerticalAlignment="Center"/>
                    </StackPanel>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

    <Style TargetType="{x:Type local:EditBox}">
        <Setter Property="HorizontalAlignment" Value="Stretch" />
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type local:EditBox}">
                    <Grid Cursor="Hand" MinWidth="{TemplateBinding MinWidth}" Background="{TemplateBinding Background}">
                        <Border x:Name="sb" VerticalAlignment="Center" Padding="0" Margin="0">
                            <Border.Style>
                                <Style TargetType="Border">
                                    <Setter Property="BorderThickness" Value="0"/>
                                    <Setter Property="BorderBrush" Value="Transparent"/>
                                    <Style.Triggers>
                                        <MultiDataTrigger>
                                            <MultiDataTrigger.Conditions>
                                                <Condition Binding="{Binding Path=Value, RelativeSource={RelativeSource TemplatedParent}}" Value=""/>
                                                <Condition Binding="{Binding Path=ShowEmpty, RelativeSource={RelativeSource TemplatedParent}}" Value="True"/>
                                            </MultiDataTrigger.Conditions>
                                            <MultiDataTrigger.Setters>
                                                <Setter Property="BorderBrush" Value="Black"/>
                                                <Setter Property="BorderThickness" Value="0,0,0,0.6"/>
                                            </MultiDataTrigger.Setters>
                                        </MultiDataTrigger>
                                        <MultiDataTrigger>
                                            <MultiDataTrigger.Conditions>
                                                <Condition Binding="{Binding Path=Value, RelativeSource={RelativeSource TemplatedParent}}" Value="{x:Null}"/>
                                                <Condition Binding="{Binding Path=ShowEmpty, RelativeSource={RelativeSource TemplatedParent}}" Value="True"/>
                                            </MultiDataTrigger.Conditions>
                                            <MultiDataTrigger.Setters>
                                                <Setter Property="BorderBrush" Value="Black"/>
                                                <Setter Property="BorderThickness" Value="0,0,0,0.6"/>
                                            </MultiDataTrigger.Setters>
                                        </MultiDataTrigger>
                                    </Style.Triggers>
                                </Style>
                            </Border.Style>
                            <TextBlock x:Name="PART_TextBlockPart" 
                                       FontSize="{TemplateBinding FontSize}"
                                       TextWrapping="NoWrap" Padding="0" VerticalAlignment="Center"
                               Text="{Binding Path=Value, RelativeSource={RelativeSource TemplatedParent}}"/>
                        </Border>
                        <TextBox x:Name="PART_TextBoxPart" BorderThickness="0" Padding="0" 
                                       FontSize="{TemplateBinding FontSize}" Visibility="Collapsed"
                               Text="{Binding Path=Value, RelativeSource={RelativeSource TemplatedParent}}"/>
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

    <Style TargetType="{x:Type local:TableComboBox}">
        <Setter Property="HorizontalAlignment" Value="Stretch" />
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type local:TableComboBox}">
                    <Grid Cursor="Hand" MinWidth="{TemplateBinding MinWidth}" Background="{TemplateBinding Background}">
                        <Border x:Name="sb" VerticalAlignment="Center" Padding="0" Margin="0">
                            <Border.Style>
                                <Style TargetType="Border">
                                    <Setter Property="BorderThickness" Value="0"/>
                                    <Setter Property="BorderBrush" Value="Transparent"/>
                                    <Style.Triggers>
                                        <MultiDataTrigger>
                                            <MultiDataTrigger.Conditions>
                                                <Condition Binding="{Binding Path=Value, RelativeSource={RelativeSource TemplatedParent}}" Value=""/>
                                                <Condition Binding="{Binding Path=ShowEmpty, RelativeSource={RelativeSource TemplatedParent}}" Value="True"/>
                                            </MultiDataTrigger.Conditions>
                                            <MultiDataTrigger.Setters>
                                                <Setter Property="BorderBrush" Value="Black"/>
                                                <Setter Property="BorderThickness" Value="0,0,0,0.6"/>
                                            </MultiDataTrigger.Setters>
                                        </MultiDataTrigger>
                                        <MultiDataTrigger>
                                            <MultiDataTrigger.Conditions>
                                                <Condition Binding="{Binding Path=Value, RelativeSource={RelativeSource TemplatedParent}}" Value="{x:Null}"/>
                                                <Condition Binding="{Binding Path=ShowEmpty, RelativeSource={RelativeSource TemplatedParent}}" Value="True"/>
                                            </MultiDataTrigger.Conditions>
                                            <MultiDataTrigger.Setters>
                                                <Setter Property="BorderBrush" Value="Black"/>
                                                <Setter Property="BorderThickness" Value="0,0,0,0.6"/>
                                            </MultiDataTrigger.Setters>
                                        </MultiDataTrigger>
                                    </Style.Triggers>
                                </Style>
                            </Border.Style>
                            <TextBlock x:Name="PART_TextBlockPart" 
                                   FontSize="{TemplateBinding FontSize}"
                                   TextWrapping="NoWrap" Padding="0" VerticalAlignment="Center"
                           Text="{Binding Path=Value, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}"/>
                        </Border>
                        <ComboBox x:Name="PART_ComboBoxPart" BorderThickness="0" Padding="0" 
                                   FontSize="{TemplateBinding FontSize}" Visibility="Collapsed"
                           Text="{Binding Path=Value, RelativeSource={RelativeSource TemplatedParent}}"/>
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</ResourceDictionary>