<UserControl x:Class="CyberX8_Themes.UserControls.PufControl"
             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="pufControl"
             d:DesignHeight="150" d:DesignWidth="450">
    <UserControl.Resources>
        <converters:StringToVisibility1 x:Key="stringToVisibility1"/>
        <converters:StringToVisibility x:Key="stringToVisibility"/>
    </UserControl.Resources>
    <!--<VisualStateManager.VisualStateGroups>
        <VisualStateGroup>
            <VisualState Name="Parker">
                <Storyboard FillBehavior="HoldEnd" >
                    <DoubleAnimationUsingKeyFrames Storyboard.TargetName="xAction" Storyboard.TargetProperty="X">
                        <LinearDoubleKeyFrame Value="15" KeyTime="0:0:1"/>
                    </DoubleAnimationUsingKeyFrames>
                </Storyboard>
            </VisualState>
            <VisualState Name="Loader">
                <Storyboard FillBehavior="HoldEnd">
                    <DoubleAnimationUsingKeyFrames Storyboard.TargetName="xAction" Storyboard.TargetProperty="X">
                        <LinearDoubleKeyFrame Value="295" KeyTime="0:0:1"/>
                    </DoubleAnimationUsingKeyFrames>
                </Storyboard>
            </VisualState>
            <VisualState Name="Efem">
                <Storyboard FillBehavior="HoldEnd">
                    <DoubleAnimationUsingKeyFrames Storyboard.TargetName="xAction" Storyboard.TargetProperty="X">
                        <LinearDoubleKeyFrame Value="-218" KeyTime="0:0:1"/>
                    </DoubleAnimationUsingKeyFrames>
                </Storyboard>
            </VisualState>
        </VisualStateGroup>
        <VisualStateGroup>
            <VisualState Name="Origin">
                <Storyboard FillBehavior="HoldEnd">
                    <DoubleAnimationUsingKeyFrames Storyboard.TargetName="rotationAction" Storyboard.TargetProperty="Angle">
                        <LinearDoubleKeyFrame Value="0" KeyTime="0:0:1"/>
                    </DoubleAnimationUsingKeyFrames>
                </Storyboard>
            </VisualState>
            <VisualState  Name="Reverse">
                <Storyboard FillBehavior="HoldEnd">
                    <DoubleAnimationUsingKeyFrames Storyboard.TargetName="rotationAction" Storyboard.TargetProperty="Angle">
                        <SplineDoubleKeyFrame  Value="-180" KeyTime="0:0:1"/>
                    </DoubleAnimationUsingKeyFrames>
                </Storyboard>
            </VisualState>
        </VisualStateGroup>

    </VisualStateManager.VisualStateGroups>-->
    <Viewbox Stretch="Fill">
        <Canvas Width="450" Height="150">
            <Canvas.RenderTransform>
                <TransformGroup>
                    <TranslateTransform  x:Name="xAction" />
                </TransformGroup>
            </Canvas.RenderTransform>
            <!--PUF1Arm-->
            <Canvas Width="33" Height="65" Canvas.Top="66" Canvas.Left="105" Visibility="{Binding PufName, ElementName=pufControl,Converter={StaticResource stringToVisibility}}">
                <Path Stroke="Silver" StrokeThickness="1" Height="65" Width="20" Data="M0,0 A 0,10 0 1 1 0,60 L 0,60 H 15 L 15,60 A 0,10 0 1 1 15,0 L 15,0 V 0" HorizontalAlignment="Center" Canvas.Top="-65.014" VerticalAlignment="Top" Canvas.Left="115" Stretch="Fill">
                    <Path.Fill>
                        <LinearGradientBrush StartPoint="1,1" EndPoint="0.3,1">
                            <GradientStop Color="DarkGray" Offset="0.0" />
                            <GradientStop Color="Silver" Offset="0.25" />
                            <GradientStop Color="White" Offset="0.5" />
                            <GradientStop Color="Silver" Offset="0.75" />
                            <GradientStop Color="DarkGray" Offset="1" />
                        </LinearGradientBrush>
                    </Path.Fill>
                </Path>
                <Path Stroke="Silver" StrokeThickness="1" Height="15" Width="33" Data="M0,0 A 0,10 0 1 1 0,33 L 0,33 H 15 L 15,33 A 0,10 0 1 1 15,0 L 15,0 V 0" HorizontalAlignment="Left" Canvas.Top="-15.014" VerticalAlignment="Center" Canvas.Left="108.5" Stretch="Fill">
                    <Path.Fill>
                        <LinearGradientBrush StartPoint="0,1" EndPoint="1,1">
                            <GradientStop Color="Gray" Offset="0.0" />
                            <GradientStop Color="White" Offset="0.15" />
                            <GradientStop Color="DarkGray" Offset="0.5" />
                            <GradientStop Color="White" Offset="0.85" />
                            <GradientStop Color="Gray" Offset="1" />
                        </LinearGradientBrush>
                    </Path.Fill>
                </Path>
                <Path Stroke="Silver" StrokeThickness="1" Height="15" Width="33" Data="M0,0 A 0,10 0 1 1 0,33 L 0,33 H 15 L 15,33 A 0,10 0 1 1 15,0 L 15,0 V 0" HorizontalAlignment="Center" Canvas.Top="-78.5" VerticalAlignment="Center" Canvas.Left="108.5" Stretch="Fill">
                    <Path.Fill>
                        <LinearGradientBrush StartPoint="1,1" EndPoint="0,0">
                            <GradientStop Color="Gray" Offset="0.0" />
                            <GradientStop Color="DarkGray" Offset="0.15" />
                            <GradientStop Color="White" Offset="0.5" />
                            <GradientStop Color="DarkGray" Offset="0.85" />
                            <GradientStop Color="Gray" Offset="1" />
                        </LinearGradientBrush>
                    </Path.Fill>
                </Path>
                <Ellipse Width="3" Height="3" Canvas.Left="115" Canvas.Top="-9" RenderTransformOrigin="0.625,-0.25" HorizontalAlignment="Center" VerticalAlignment="Top">
                    <Ellipse.Fill>
                        <LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
                            <GradientStop Color="Black" Offset="0.0" />
                            <GradientStop Color="White" Offset="0.5" />
                            <GradientStop Color="Black" Offset="1" />
                        </LinearGradientBrush>
                    </Ellipse.Fill>
                </Ellipse>
                <Ellipse Width="3" Height="3" Canvas.Left="132" Canvas.Top="-9" RenderTransformOrigin="0.625,-0.25" HorizontalAlignment="Center" VerticalAlignment="Top">
                    <Ellipse.Fill>
                        <LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
                            <GradientStop Color="Black" Offset="0.0" />
                            <GradientStop Color="White" Offset="0.5" />
                            <GradientStop Color="Black" Offset="1" />
                        </LinearGradientBrush>
                    </Ellipse.Fill>
                </Ellipse>
            </Canvas>
            <!--PUF2Arm-->
            <Canvas Width="33" Height="65" Canvas.Top="25" Canvas.Left="322" Visibility="{Binding PufName, ElementName=pufControl,Converter={StaticResource stringToVisibility1}}" RenderTransformOrigin="0.5,0.5">
                <Canvas.RenderTransform>
                    <TransformGroup>
                        <ScaleTransform/>
                        <SkewTransform/>
                        <RotateTransform Angle="-180"/>
                        <TranslateTransform/>
                    </TransformGroup>
                </Canvas.RenderTransform>
                <Path Stroke="Silver" StrokeThickness="1" Height="65" Width="20" Data="M0,0 A 0,10 0 1 1 0,60 L 0,60 H 15 L 15,60 A 0,10 0 1 1 15,0 L 15,0 V 0" HorizontalAlignment="Center" Canvas.Top="-65.014" VerticalAlignment="Top" Canvas.Left="115" Stretch="Fill">
                    <Path.Fill>
                        <LinearGradientBrush StartPoint="1,1" EndPoint="0.3,1">
                            <GradientStop Color="DarkGray" Offset="0.0" />
                            <GradientStop Color="Silver" Offset="0.25" />
                            <GradientStop Color="White" Offset="0.5" />
                            <GradientStop Color="Silver" Offset="0.75" />
                            <GradientStop Color="DarkGray" Offset="1" />
                        </LinearGradientBrush>
                    </Path.Fill>
                </Path>
                <Path Stroke="Silver" StrokeThickness="1" Height="15" Width="33" Data="M0,0 A 0,10 0 1 1 0,33 L 0,33 H 15 L 15,33 A 0,10 0 1 1 15,0 L 15,0 V 0" HorizontalAlignment="Left" Canvas.Top="-15.014" VerticalAlignment="Center" Canvas.Left="108.5" Stretch="Fill">
                    <Path.Fill>
                        <LinearGradientBrush StartPoint="0,1" EndPoint="1,1">
                            <GradientStop Color="Gray" Offset="0.0" />
                            <GradientStop Color="White" Offset="0.15" />
                            <GradientStop Color="DarkGray" Offset="0.5" />
                            <GradientStop Color="White" Offset="0.85" />
                            <GradientStop Color="Gray" Offset="1" />
                        </LinearGradientBrush>
                    </Path.Fill>
                </Path>
                <Path Stroke="Silver" StrokeThickness="1" Height="15" Width="33" Data="M0,0 A 0,10 0 1 1 0,33 L 0,33 H 15 L 15,33 A 0,10 0 1 1 15,0 L 15,0 V 0" HorizontalAlignment="Center" Canvas.Top="-78.5" VerticalAlignment="Center" Canvas.Left="108.5" Stretch="Fill">
                    <Path.Fill>
                        <LinearGradientBrush StartPoint="1,1" EndPoint="0,0">
                            <GradientStop Color="Gray" Offset="0.0" />
                            <GradientStop Color="DarkGray" Offset="0.15" />
                            <GradientStop Color="White" Offset="0.5" />
                            <GradientStop Color="DarkGray" Offset="0.85" />
                            <GradientStop Color="Gray" Offset="1" />
                        </LinearGradientBrush>
                    </Path.Fill>
                </Path>
                <Ellipse Width="3" Height="3" Canvas.Left="115" Canvas.Top="-9" RenderTransformOrigin="0.625,-0.25" HorizontalAlignment="Center" VerticalAlignment="Top">
                    <Ellipse.Fill>
                        <LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
                            <GradientStop Color="Black" Offset="0.0" />
                            <GradientStop Color="White" Offset="0.5" />
                            <GradientStop Color="Black" Offset="1" />
                        </LinearGradientBrush>
                    </Ellipse.Fill>
                </Ellipse>
                <Ellipse Width="3" Height="3" Canvas.Left="132" Canvas.Top="-9" RenderTransformOrigin="0.625,-0.25" HorizontalAlignment="Center" VerticalAlignment="Top">
                    <Ellipse.Fill>
                        <LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
                            <GradientStop Color="Black" Offset="0.0" />
                            <GradientStop Color="White" Offset="0.5" />
                            <GradientStop Color="Black" Offset="1" />
                        </LinearGradientBrush>
                    </Ellipse.Fill>
                </Ellipse>
            </Canvas>

            <Canvas Width="450" Height="150" RenderTransformOrigin="0.5,0.5">
                <Canvas.RenderTransform>
                    <TransformGroup>
                        <!--PUF旋转-->
                        <RotateTransform Angle="{Binding ElementName=pufControl, Path=PufFlipPosition}"/>
                    </TransformGroup>
                </Canvas.RenderTransform>
                <local:PufArmControl Canvas.Left="101" Canvas.Top="65" HorizontalAlignment="Left" VerticalAlignment="Center"/>

                <!--PUFA-->
                <Viewbox Stretch="Uniform" Width="200" Height="200" Canvas.Top="-40" Canvas.Left="15">
                    <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>
                <!--PUFB-->
                <Viewbox x:Name="PUFB" Visibility="Visible" Stretch="Uniform" Width="200" Height="200" Canvas.Top="-40" Canvas.Left="238">
                    <Canvas UseLayoutRounding="False"  Width="93.693" Height="112.5" HorizontalAlignment="Center" VerticalAlignment="Center">
                        <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>

                <StackPanel Canvas.Top="65" Canvas.Left="155"  Panel.ZIndex="99">
                    <TextBlock  FontSize="20" Text="{Binding PufName, ElementName=pufControl}" TextAlignment="Center" Width="130"/>
                </StackPanel>
                <TextBlock Text="A"   FontSize="22" Foreground="Black"  Canvas.Left="330" Canvas.Top="60" HorizontalAlignment="Left" VerticalAlignment="Top"/>
                <TextBlock Text="B" FontSize="22" Foreground="Black" Canvas.Left="108" Canvas.Top="65" Height="23" Width="14" HorizontalAlignment="Center" VerticalAlignment="Top"/>
                <Viewbox Width="126" Height="126"  Canvas.Left="52" Canvas.Top="12">
                    <local:WaferCtrl WaferData="{Binding ElementName=pufControl, Path=RobotWaferB}"/>
                </Viewbox>
                <Viewbox Width="126" Height="126"  Canvas.Left="275" Canvas.Top="12">
                    <local:WaferCtrl WaferData="{Binding ElementName=pufControl, Path=RobotWaferA}"/>
                </Viewbox>

            </Canvas>
        </Canvas>

    </Viewbox>
</UserControl>