<UserControl x:Class="CyberX8_Themes.UserControls.EFEMRight" 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" xmlns:ctrl="http://OpenSEMI.Ctrlib.com/presentation" xmlns:customControls="clr-namespace:CyberX8_Themes.CustomControls" mc:Ignorable="d" d:DesignHeight="450" d:DesignWidth="800" Name="efem"> <VisualStateManager.VisualStateGroups> <VisualStateGroup Name="RobotTActions"> <VisualStateGroup.Transitions> <VisualTransition To="Left"> <Storyboard FillBehavior="HoldEnd"> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="robotRotateAct" Storyboard.TargetProperty="X"> <LinearDoubleKeyFrame Value="-210" KeyTime="0:0:0.5"/> </DoubleAnimationUsingKeyFrames> </Storyboard> </VisualTransition> <VisualTransition To="Right"> <Storyboard FillBehavior="HoldEnd"> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="robotRotateAct" Storyboard.TargetProperty="X"> <LinearDoubleKeyFrame Value="510" KeyTime="0:0:0.5"/> </DoubleAnimationUsingKeyFrames> </Storyboard> </VisualTransition> <VisualTransition To="Middle"> <Storyboard FillBehavior="HoldEnd"> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="robotRotateAct" Storyboard.TargetProperty="X"> <LinearDoubleKeyFrame Value="130" KeyTime="0:0:0.5"/> </DoubleAnimationUsingKeyFrames> </Storyboard> </VisualTransition> <VisualTransition To="Origin"> <Storyboard FillBehavior="HoldEnd"> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="robotRotateAct" Storyboard.TargetProperty="X"> <LinearDoubleKeyFrame Value="0" KeyTime="0:0:0.5"/> </DoubleAnimationUsingKeyFrames> </Storyboard> </VisualTransition> </VisualStateGroup.Transitions> <VisualState Name="Left"> <Storyboard FillBehavior="HoldEnd"> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="robotRotateAct" Storyboard.TargetProperty="X"> <LinearDoubleKeyFrame Value="-210" KeyTime="0:0:0"/> </DoubleAnimationUsingKeyFrames> </Storyboard> </VisualState> <VisualState Name="Right"> <Storyboard FillBehavior="HoldEnd"> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="robotRotateAct" Storyboard.TargetProperty="X"> <LinearDoubleKeyFrame Value="510" KeyTime="0:0:0"/> </DoubleAnimationUsingKeyFrames> </Storyboard> </VisualState> <VisualState Name="Middle"> <Storyboard FillBehavior="HoldEnd"> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="robotRotateAct" Storyboard.TargetProperty="X"> <LinearDoubleKeyFrame Value="130" KeyTime="0:0:0"/> </DoubleAnimationUsingKeyFrames> </Storyboard> </VisualState> <VisualState Name="Origin"> <Storyboard FillBehavior="HoldEnd"> <DoubleAnimationUsingKeyFrames Storyboard.TargetName="robotRotateAct" Storyboard.TargetProperty="X"> <LinearDoubleKeyFrame Value="0" KeyTime="0:0:0"/> </DoubleAnimationUsingKeyFrames> </Storyboard> </VisualState> </VisualStateGroup> </VisualStateManager.VisualStateGroups> <UserControl.Resources> <converters:BoolToVisibility2 x:Key="BoolToVisibility2"/> <Style x:Key="LP1Style"> <Style.Triggers> <DataTrigger Binding="{Binding ElementName=efem,Path=LP1Loaded}" Value="True"> <DataTrigger.EnterActions> <BeginStoryboard> <Storyboard> <DoubleAnimation Storyboard.TargetProperty="RenderTransform.Children[0].Y" To="-30" Duration="0:0:1"/> </Storyboard> </BeginStoryboard> </DataTrigger.EnterActions> <DataTrigger.ExitActions> <BeginStoryboard> <Storyboard> <DoubleAnimation Storyboard.TargetProperty="RenderTransform.Children[0].Y" To="0" Duration="0:0:1"/> </Storyboard> </BeginStoryboard> </DataTrigger.ExitActions> </DataTrigger> </Style.Triggers> </Style> <Style x:Key="LP2Style"> <Style.Triggers> <DataTrigger Binding="{Binding ElementName=efem,Path=LP2Loaded}" Value="True"> <DataTrigger.EnterActions> <BeginStoryboard> <Storyboard> <DoubleAnimation Storyboard.TargetProperty="RenderTransform.Children[0].Y" To="-30" Duration="0:0:1"/> </Storyboard> </BeginStoryboard> </DataTrigger.EnterActions> <DataTrigger.ExitActions> <BeginStoryboard> <Storyboard> <DoubleAnimation Storyboard.TargetProperty="RenderTransform.Children[0].Y" To="0" Duration="0:0:1"/> </Storyboard> </BeginStoryboard> </DataTrigger.ExitActions> </DataTrigger> </Style.Triggers> </Style> <Style x:Key="LP3Style"> <Style.Triggers> <DataTrigger Binding="{Binding ElementName=efem,Path=LP3Loaded}" Value="True"> <DataTrigger.EnterActions> <BeginStoryboard> <Storyboard> <DoubleAnimation Storyboard.TargetProperty="RenderTransform.Children[0].Y" To="-30" Duration="0:0:1"/> </Storyboard> </BeginStoryboard> </DataTrigger.EnterActions> <DataTrigger.ExitActions> <BeginStoryboard> <Storyboard> <DoubleAnimation Storyboard.TargetProperty="RenderTransform.Children[0].Y" To="0" Duration="0:0:1"/> </Storyboard> </BeginStoryboard> </DataTrigger.ExitActions> </DataTrigger> </Style.Triggers> </Style> <Style x:Key="PlatformStyle"> <Style.Triggers> <DataTrigger Binding="{Binding ElementName=efem,Path=CurrentRobotPosition}" Value="Left"> <DataTrigger.EnterActions> <BeginStoryboard x:Name="toLeft"> <Storyboard> <DoubleAnimation FillBehavior="HoldEnd" Storyboard.TargetProperty="RenderTransform.Children[0].X" To="-200" Duration="0:0:1"/> </Storyboard> </BeginStoryboard> </DataTrigger.EnterActions> <!--<DataTrigger.ExitActions> <RemoveStoryboard BeginStoryboardName="toLeft"/> </DataTrigger.ExitActions>--> </DataTrigger> <DataTrigger Binding="{Binding ElementName=efem,Path=CurrentRobotPosition}" Value="Middle"> <DataTrigger.EnterActions> <BeginStoryboard x:Name="toMiddle"> <Storyboard> <DoubleAnimation FillBehavior="HoldEnd" Storyboard.TargetProperty="RenderTransform.Children[0].X" To="100" Duration="0:0:1"/> </Storyboard> </BeginStoryboard> </DataTrigger.EnterActions> <!--<DataTrigger.ExitActions> <RemoveStoryboard BeginStoryboardName="toMiddle"/> </DataTrigger.ExitActions>--> </DataTrigger> <DataTrigger Binding="{Binding ElementName=efem,Path=CurrentRobotPosition}" Value="Right"> <DataTrigger.EnterActions> <BeginStoryboard x:Name="toRight"> <Storyboard> <DoubleAnimation FillBehavior="HoldEnd" Storyboard.TargetProperty="RenderTransform.Children[0].X" To="500" Duration="0:0:1"/> </Storyboard> </BeginStoryboard> </DataTrigger.EnterActions> <!--<DataTrigger.ExitActions> <RemoveStoryboard BeginStoryboardName="toRight"/> </DataTrigger.ExitActions>--> </DataTrigger> <DataTrigger Binding="{Binding ElementName=efem,Path=CurrentRobotPosition}" Value="Origin"> <DataTrigger.EnterActions> <BeginStoryboard x:Name="toOrigin"> <Storyboard> <DoubleAnimation FillBehavior="HoldEnd" Storyboard.TargetProperty="RenderTransform.Children[0].X" To="0" Duration="0:0:1"/> </Storyboard> </BeginStoryboard> </DataTrigger.EnterActions> <!--<DataTrigger.ExitActions> <RemoveStoryboard BeginStoryboardName="toOrigin"/> </DataTrigger.ExitActions>--> </DataTrigger> </Style.Triggers> </Style> </UserControl.Resources> <Viewbox Stretch="Fill"> <Border BorderThickness="0" BorderBrush="Gray"> <Canvas Width="1500" Height="600"> <Polygon Points="0,600 0,0 1500,0 1500,600 0,600" Stroke="Gray" StrokeThickness="20" > <Polygon.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> </Polygon.Fill> </Polygon> <Canvas Width="500" Height="500" Canvas.Left="510" Canvas.Top="50" RenderTransformOrigin="1 1"> <Canvas.RenderTransform> <TransformGroup> <TranslateTransform x:Name="robotRotateAct"/> </TransformGroup> </Canvas.RenderTransform> <!--<Ellipse Width="500" Height="500" x:Name="ep1" > <Ellipse.Fill> <RadialGradientBrush > <GradientStop Color="#FFFFFFFF" Offset="0" /> <GradientStop Color="Silver" Offset="1" /> </RadialGradientBrush> </Ellipse.Fill> </Ellipse>--> <customControls:GuangChuanRobotControl OriginT="T_Origin" Canvas.Left="-30" Canvas.Top="-180" Width="540" Height="810" RobotTAction="{Binding ElementName=efem,Path=RobotATAction}" RobotXAction="{Binding ElementName=efem,Path=RobotAXAction}" RobotWafer="{Binding ElementName=efem,Path=RobotAWaferInfo}"/> <customControls:GuangChuanRobotControl OriginT="T_Origin" Canvas.Left="-30" Canvas.Top="-180" Width="540" Height="810" RobotTAction="{Binding ElementName=efem,Path=RobotBTAction}" RobotXAction="{Binding ElementName=efem,Path=RobotBXAction}" RobotWafer="{Binding ElementName=efem,Path=RobotBWaferInfo}"/> </Canvas> <Viewbox Stretch="Uniform" Width="370" Height="370" Canvas.Left="-10" Canvas.Top="60"> <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 Width="5.857" Height="5.855" Canvas.Left="43.919" Canvas.Top="62.113"> <Path Data="M46.8477,62.1133C48.4637,62.1133 49.7757,63.4243 49.7757,65.0413 49.7757,66.6583 48.4637,67.9683 46.8477,67.9683 45.2307,67.9683 43.9187,66.6583 43.9187,65.0413 43.9187,63.4243 45.2307,62.1133 46.8477,62.1133z" Stretch="Fill" Fill="LightBlue" Stroke="#FF4C4C4C" StrokeThickness="0.25" Width="6.107" Height="6.105" Canvas.Left="-0.125" Canvas.Top="-0.125" /> </Canvas> <Canvas 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 Width="230" Height="230" Canvas.Left="60" Canvas.Top="160"> <local:WaferCtrl WaferData="{Binding ElementName=efem, Path=Aligner1Wafer}"/> </Viewbox> <local:Loadport Canvas.Left="360" Canvas.Top="610" Width="300" Height="300"/> <local:Loadport Canvas.Left="750" Canvas.Top="610" Width="300" Height="300"/> <local:Loadport Canvas.Left="1150" Canvas.Top="610" Width="300" Height="300"/> <TextBlock Text="Aligner1" FontSize="60" Canvas.Left="70" Canvas.Top="50"/> <!--<TextBlock Text="Aligner2" FontSize="40" Canvas.Left="990" Canvas.Top="5"/> <TextBlock Text="Cooling1" FontSize="40" Canvas.Left="66" Canvas.Top="310"/> <TextBlock Text="Aligner1" FontSize="40" Canvas.Left="990" Canvas.Top="310"/>--> <local:Foup Width="230" Height="450" Canvas.Left="395" Canvas.Top="655" Visibility="{Binding ElementName=efem,Path=LP1Presented,Converter={StaticResource BoolToVisibility2}}" Style="{StaticResource LP1Style}"> <local:Foup.RenderTransform> <TransformGroup> <TranslateTransform/> </TransformGroup> </local:Foup.RenderTransform> </local:Foup> <local:Foup Width="230" Height="450" Canvas.Left="785" Canvas.Top="655" Visibility="{Binding ElementName=efem,Path=LP2Presented,Converter={StaticResource BoolToVisibility2}}" Style="{StaticResource LP2Style}"> <local:Foup.RenderTransform> <TransformGroup> <TranslateTransform/> </TransformGroup> </local:Foup.RenderTransform> </local:Foup> <local:Foup Width="230" Height="450" Canvas.Left="1185" Canvas.Top="655" Visibility="{Binding ElementName=efem,Path=LP3Presented,Converter={StaticResource BoolToVisibility2}}" Style="{StaticResource LP3Style}"> <local:Foup.RenderTransform> <TransformGroup> <TranslateTransform/> </TransformGroup> </local:Foup.RenderTransform> </local:Foup> <TextBox IsReadOnly="True" Text="LP1" Canvas.Left="370" Canvas.Top="910" FontSize="55" Width="280" Height="83" Background="#B1D2F2" HorizontalContentAlignment="Center" HorizontalAlignment="Center" VerticalAlignment="Top"/> <TextBox IsReadOnly="True" Text="LP2" Canvas.Left="760" Canvas.Top="910" FontSize="55" Width="280" Height="83" Background="#B1D2F2" HorizontalContentAlignment="Center" HorizontalAlignment="Center" VerticalAlignment="Top"/> <TextBox IsReadOnly="True" Text="LP3" Canvas.Left="1160" Canvas.Top="910" FontSize="55" Width="280" Height="83" Background="#B1D2F2" HorizontalContentAlignment="Center" HorizontalAlignment="Center" VerticalAlignment="Top"/> </Canvas> </Border> </Viewbox> </UserControl>