<UserControl x:Class="CyberX8_Themes.UserControls.LoaderControl"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:local="clr-namespace:CyberX8_Themes.UserControls"
             xmlns:converters="clr-namespace:CyberX8_Themes.Converters"
             mc:Ignorable="d" Name="loader"
             d:DesignHeight="310" d:DesignWidth="200">
    <UserControl.Resources>
        <converters:BoolToVisibility x:Key="boolToVisibility"/>
        <converters:BoolToVisibility3 x:Key="boolToVisibility3"/>
    </UserControl.Resources>
    <VisualStateManager.VisualStateGroups>
        <VisualStateGroup>
            <VisualState Name="TrnpA">
                <Storyboard FillBehavior="HoldEnd">
                    <DoubleAnimationUsingKeyFrames Storyboard.TargetName="rotationAction" Storyboard.TargetProperty="Angle">
                        <LinearDoubleKeyFrame Value="-90" KeyTime="0:0:1"/>
                    </DoubleAnimationUsingKeyFrames>
                </Storyboard>
            </VisualState>
            <VisualState  Name="TrnpB">
                <Storyboard FillBehavior="HoldEnd">
                    <DoubleAnimationUsingKeyFrames Storyboard.TargetName="rotationAction" Storyboard.TargetProperty="Angle">
                        <SplineDoubleKeyFrame  Value="90" KeyTime="0:0:1"/>
                    </DoubleAnimationUsingKeyFrames>
                </Storyboard>
            </VisualState>
            <VisualState  Name="Load">
                <Storyboard FillBehavior="HoldEnd">
                    <DoubleAnimationUsingKeyFrames Storyboard.TargetName="rotationAction" Storyboard.TargetProperty="Angle">
                        <SplineDoubleKeyFrame  Value="0" KeyTime="0:0:1"/>
                    </DoubleAnimationUsingKeyFrames>
                </Storyboard>
            </VisualState>
            <VisualState  Name="Camera">
                <Storyboard FillBehavior="HoldEnd">
                    <DoubleAnimationUsingKeyFrames Storyboard.TargetName="rotationAction" Storyboard.TargetProperty="Angle">
                        <SplineDoubleKeyFrame  Value="63" KeyTime="0:0:1"/>
                    </DoubleAnimationUsingKeyFrames>
                </Storyboard>
            </VisualState>
        </VisualStateGroup>

    </VisualStateManager.VisualStateGroups>
    <Viewbox Stretch="Fill">
        <Canvas Width="200" Height="310">
            <Canvas.RenderTransform>
                <TransformGroup>
                    <RotateTransform x:Name="rotationAction" CenterX="100" CenterY="155"/>
                </TransformGroup>
            </Canvas.RenderTransform>
            <Rectangle Canvas.Top="100" Width="200" Height="30" Stroke="LightGray" Visibility="{Binding ElementName=loader, Path=WaferVisibleA,Converter={StaticResource boolToVisibility}}">
                <Rectangle.Fill>
                    <LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
                        <GradientStop Color="DarkGray" Offset="0.0" />
                        <GradientStop Color="Black" Offset="0.5" />
                        <GradientStop Color="DarkGray" Offset="1" />
                    </LinearGradientBrush>
                </Rectangle.Fill>
            </Rectangle>
            <Rectangle Canvas.Top="130" Width="200" Height="50" Stroke="LightGray">
                <Rectangle.Fill>
                    <LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
                        <GradientStop Color="Silver" Offset="0.0" />
                        <GradientStop Color="White" Offset="0.5" />
                        <GradientStop Color="Silver" Offset="1" />
                    </LinearGradientBrush>
                </Rectangle.Fill>
            </Rectangle>
            <Rectangle Canvas.Top="180" Width="200" Height="30" Stroke="LightGray" Visibility="{Binding ElementName=loader, Path=WaferVisibleB,Converter={StaticResource boolToVisibility}}">
                <Rectangle.Fill>
                    <LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
                        <GradientStop Color="DarkGray" Offset="0.0" />
                        <GradientStop Color="Black" Offset="0.5" />
                        <GradientStop Color="DarkGray" Offset="1" />
                    </LinearGradientBrush>
                </Rectangle.Fill>
            </Rectangle>

            <StackPanel Canvas.Top="143"  Panel.ZIndex="99">
                <TextBlock  FontSize="20" Text="Loader" TextAlignment="Center" Width="200"/>
            </StackPanel>
            <TextBlock Text="SideA" FontSize="17" Foreground="White"  Canvas.Left="77" Canvas.Top="104" HorizontalAlignment="Left" Visibility="{Binding ElementName=loader, Path=WaferVisibleA,Converter={StaticResource boolToVisibility}}"/>
            <TextBlock Text="SideB" FontSize="17" Foreground="White" Canvas.Left="77" Canvas.Top="184" HorizontalAlignment="Left" Visibility="{Binding ElementName=loader, Path=WaferVisibleB,Converter={StaticResource boolToVisibility}}"/>
            <!--wafer-->
            <Viewbox Stretch="Uniform" Width="200" Height="200" Canvas.Top="-50" Canvas.Left="0" Visibility="{Binding ElementName=loader, Path=WaferVisibleA,Converter={StaticResource boolToVisibility3}}">
                <Canvas UseLayoutRounding="False"  Width="93.693" Height="112.5" HorizontalAlignment="Left" VerticalAlignment="Top">
                    <Canvas  Width="72.522" Height="72.521" Canvas.Left="10.473" Canvas.Top="28.781">
                        <Path Data="F1M10.473,65.041C10.473,85.068,26.708,101.302,46.734,101.302L46.734,101.302C66.761,101.302,82.995,85.068,82.995,65.041L82.995,65.041C82.995,45.015,66.761,28.781,46.734,28.781L46.734,28.781C26.708,28.781,10.473,45.015,10.473,65.041" Stretch="Fill" Width="72.522" Height="72.521" Canvas.Left="0" Canvas.Top="0">
                            <Path.Fill>
                                <RadialGradientBrush Center="0.5,0.5" RadiusX="0.5" RadiusY="0.5" GradientOrigin="0.5,0.5">
                                    <RadialGradientBrush.GradientStops>
                                        <GradientStop Color="#FFE5E2DF" Offset="0" />
                                        <GradientStop Color="#FFFFFFFF" Offset="0" />
                                        <GradientStop Color="#FFADAEB0" Offset="0.52" />
                                        <GradientStop Color="sc#1, 0.238698155, 0.250727534, 0.259264916" Offset="0.82" />
                                        <GradientStop Color="#FF454F52" Offset="1" />
                                    </RadialGradientBrush.GradientStops>
                                </RadialGradientBrush>
                            </Path.Fill>
                        </Path>
                        <Path Data="M46.8477,55.6938C52.0087,55.6938 56.1937,59.8788 56.1937,65.0398 56.1937,70.2008 52.0087,74.3858 46.8477,74.3858 41.6857,74.3858 37.5007,70.2008 37.5007,65.0398 37.5007,59.8788 41.6857,55.6938 46.8477,55.6938z" Stretch="Fill" Stroke="White" StrokeThickness="0.25" Width="18.943" Height="18.942" Canvas.Left="26.903" Canvas.Top="26.788" />
                    </Canvas>
                    
                    <Canvas Tag="#00000000,#FF008000,Original,0,None" Width="56.555" Height="56.556" Canvas.Left="18.57" Canvas.Top="36.762">
                        <Path Data="M46.8477,46.3472C57.1717,46.3472 65.5407,54.7172 65.5407,65.0412 65.5407,75.3652 57.1717,83.7342 46.8477,83.7342 36.5227,83.7342 28.1537,75.3652 28.1537,65.0412 28.1537,54.7172 36.5227,46.3472 46.8477,46.3472z" Stretch="Fill" Stroke="White" StrokeThickness="0.25" Width="37.637" Height="37.637" Canvas.Left="9.459" Canvas.Top="9.46" />
                        <Path Data="M46.8477,36.8872C62.3957,36.8872 74.9997,49.4912 74.9997,65.0402 74.9997,80.5882 62.3957,93.1932 46.8477,93.1932 31.2987,93.1932 18.6947,80.5882 18.6947,65.0402 18.6947,49.4912 31.2987,36.8872 46.8477,36.8872z" Stretch="Fill" Stroke="White" StrokeThickness="0.25" Width="56.555" Height="56.556" />
                    </Canvas>
                </Canvas>
            </Viewbox>
            <Viewbox Stretch="Uniform" Width="200" Height="200" Canvas.Top="130" Canvas.Left="0" Visibility="{Binding ElementName=loader, Path=WaferVisibleB,Converter={StaticResource boolToVisibility3}}">
                <Canvas UseLayoutRounding="False"  Width="93.693" Height="112.5" HorizontalAlignment="Left" VerticalAlignment="Top">
                    <Canvas  Width="72.522" Height="72.521" Canvas.Left="10.473" Canvas.Top="28.781">
                        <Path Data="F1M10.473,65.041C10.473,85.068,26.708,101.302,46.734,101.302L46.734,101.302C66.761,101.302,82.995,85.068,82.995,65.041L82.995,65.041C82.995,45.015,66.761,28.781,46.734,28.781L46.734,28.781C26.708,28.781,10.473,45.015,10.473,65.041" Stretch="Fill" Width="72.522" Height="72.521" Canvas.Left="0" Canvas.Top="0">
                            <Path.Fill>
                                <RadialGradientBrush Center="0.5,0.5" RadiusX="0.5" RadiusY="0.5" GradientOrigin="0.5,0.5">
                                    <RadialGradientBrush.GradientStops>
                                        <GradientStop Color="#FFE5E2DF" Offset="0" />
                                        <GradientStop Color="#FFFFFFFF" Offset="0" />
                                        <GradientStop Color="#FFADAEB0" Offset="0.52" />
                                        <GradientStop Color="sc#1, 0.238698155, 0.250727534, 0.259264916" Offset="0.82" />
                                        <GradientStop Color="#FF454F52" Offset="1" />
                                    </RadialGradientBrush.GradientStops>
                                </RadialGradientBrush>
                            </Path.Fill>
                        </Path>
                        <Path Data="M46.8477,55.6938C52.0087,55.6938 56.1937,59.8788 56.1937,65.0398 56.1937,70.2008 52.0087,74.3858 46.8477,74.3858 41.6857,74.3858 37.5007,70.2008 37.5007,65.0398 37.5007,59.8788 41.6857,55.6938 46.8477,55.6938z" Stretch="Fill" Stroke="White" StrokeThickness="0.25" Width="18.943" Height="18.942" Canvas.Left="26.903" Canvas.Top="26.788" />
                    </Canvas>
                    
                    <Canvas Tag="#00000000,#FF008000,Original,0,None" Width="56.555" Height="56.556" Canvas.Left="18.57" Canvas.Top="36.762">
                        <Path Data="M46.8477,46.3472C57.1717,46.3472 65.5407,54.7172 65.5407,65.0412 65.5407,75.3652 57.1717,83.7342 46.8477,83.7342 36.5227,83.7342 28.1537,75.3652 28.1537,65.0412 28.1537,54.7172 36.5227,46.3472 46.8477,46.3472z" Stretch="Fill" Stroke="White" StrokeThickness="0.25" Width="37.637" Height="37.637" Canvas.Left="9.459" Canvas.Top="9.46" />
                        <Path Data="M46.8477,36.8872C62.3957,36.8872 74.9997,49.4912 74.9997,65.0402 74.9997,80.5882 62.3957,93.1932 46.8477,93.1932 31.2987,93.1932 18.6947,80.5882 18.6947,65.0402 18.6947,49.4912 31.2987,36.8872 46.8477,36.8872z" Stretch="Fill" Stroke="White" StrokeThickness="0.25" Width="56.555" Height="56.556" />
                    </Canvas>
                </Canvas>
            </Viewbox>
            <TextBlock Text="A"   FontSize="22" Foreground="Black"  Canvas.Left="93" Canvas.Top="50" HorizontalAlignment="Left" VerticalAlignment="Top" Visibility="{Binding ElementName=loader, Path=WaferVisibleA,Converter={StaticResource boolToVisibility3}}"/>
            <TextBlock Text="B" FontSize="22" Foreground="Black" Canvas.Left="93" Canvas.Top="231" Height="23" Width="14" HorizontalAlignment="Center" VerticalAlignment="Top" Visibility="{Binding ElementName=loader, Path=WaferVisibleB,Converter={StaticResource boolToVisibility3}}"/>
            <Viewbox Width="126" Height="126"  Canvas.Left="37" Canvas.Top="2" Visibility="{Binding ElementName=loader, Path=WaferVisibleA,Converter={StaticResource boolToVisibility3}}">
                <local:WaferCtrl WaferData="{Binding ElementName=loader, Path=LoaderWaferA}"/>
            </Viewbox>
            <Viewbox Width="126" Height="126"  Canvas.Left="37" Canvas.Top="182" Visibility="{Binding ElementName=loader, Path=WaferVisibleB,Converter={StaticResource boolToVisibility3}}">
                <local:WaferCtrl WaferData="{Binding ElementName=loader, Path=LoaderWaferB}"/>
            </Viewbox>
        </Canvas>
    </Viewbox>
</UserControl>