<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>