PufControl.xaml 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259
  1. <UserControl x:Class="CyberX8_Themes.UserControls.PufControl"
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  5. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  6. xmlns:local="clr-namespace:CyberX8_Themes.UserControls"
  7. xmlns:converters="clr-namespace:CyberX8_Themes.Converters"
  8. mc:Ignorable="d" Name="pufControl"
  9. d:DesignHeight="150" d:DesignWidth="450">
  10. <UserControl.Resources>
  11. <converters:StringToVisibility1 x:Key="stringToVisibility1"/>
  12. <converters:StringToVisibility x:Key="stringToVisibility"/>
  13. </UserControl.Resources>
  14. <!--<VisualStateManager.VisualStateGroups>
  15. <VisualStateGroup>
  16. <VisualState Name="Parker">
  17. <Storyboard FillBehavior="HoldEnd" >
  18. <DoubleAnimationUsingKeyFrames Storyboard.TargetName="xAction" Storyboard.TargetProperty="X">
  19. <LinearDoubleKeyFrame Value="15" KeyTime="0:0:1"/>
  20. </DoubleAnimationUsingKeyFrames>
  21. </Storyboard>
  22. </VisualState>
  23. <VisualState Name="Loader">
  24. <Storyboard FillBehavior="HoldEnd">
  25. <DoubleAnimationUsingKeyFrames Storyboard.TargetName="xAction" Storyboard.TargetProperty="X">
  26. <LinearDoubleKeyFrame Value="295" KeyTime="0:0:1"/>
  27. </DoubleAnimationUsingKeyFrames>
  28. </Storyboard>
  29. </VisualState>
  30. <VisualState Name="Efem">
  31. <Storyboard FillBehavior="HoldEnd">
  32. <DoubleAnimationUsingKeyFrames Storyboard.TargetName="xAction" Storyboard.TargetProperty="X">
  33. <LinearDoubleKeyFrame Value="-218" KeyTime="0:0:1"/>
  34. </DoubleAnimationUsingKeyFrames>
  35. </Storyboard>
  36. </VisualState>
  37. </VisualStateGroup>
  38. <VisualStateGroup>
  39. <VisualState Name="Origin">
  40. <Storyboard FillBehavior="HoldEnd">
  41. <DoubleAnimationUsingKeyFrames Storyboard.TargetName="rotationAction" Storyboard.TargetProperty="Angle">
  42. <LinearDoubleKeyFrame Value="0" KeyTime="0:0:1"/>
  43. </DoubleAnimationUsingKeyFrames>
  44. </Storyboard>
  45. </VisualState>
  46. <VisualState Name="Reverse">
  47. <Storyboard FillBehavior="HoldEnd">
  48. <DoubleAnimationUsingKeyFrames Storyboard.TargetName="rotationAction" Storyboard.TargetProperty="Angle">
  49. <SplineDoubleKeyFrame Value="-180" KeyTime="0:0:1"/>
  50. </DoubleAnimationUsingKeyFrames>
  51. </Storyboard>
  52. </VisualState>
  53. </VisualStateGroup>
  54. </VisualStateManager.VisualStateGroups>-->
  55. <Viewbox Stretch="Fill">
  56. <Canvas Width="450" Height="150">
  57. <Canvas.RenderTransform>
  58. <TransformGroup>
  59. <TranslateTransform x:Name="xAction" />
  60. </TransformGroup>
  61. </Canvas.RenderTransform>
  62. <!--PUF1Arm-->
  63. <Canvas Width="33" Height="65" Canvas.Top="66" Canvas.Left="105" Visibility="{Binding PufName, ElementName=pufControl,Converter={StaticResource stringToVisibility}}">
  64. <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">
  65. <Path.Fill>
  66. <LinearGradientBrush StartPoint="1,1" EndPoint="0.3,1">
  67. <GradientStop Color="DarkGray" Offset="0.0" />
  68. <GradientStop Color="Silver" Offset="0.25" />
  69. <GradientStop Color="White" Offset="0.5" />
  70. <GradientStop Color="Silver" Offset="0.75" />
  71. <GradientStop Color="DarkGray" Offset="1" />
  72. </LinearGradientBrush>
  73. </Path.Fill>
  74. </Path>
  75. <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">
  76. <Path.Fill>
  77. <LinearGradientBrush StartPoint="0,1" EndPoint="1,1">
  78. <GradientStop Color="Gray" Offset="0.0" />
  79. <GradientStop Color="White" Offset="0.15" />
  80. <GradientStop Color="DarkGray" Offset="0.5" />
  81. <GradientStop Color="White" Offset="0.85" />
  82. <GradientStop Color="Gray" Offset="1" />
  83. </LinearGradientBrush>
  84. </Path.Fill>
  85. </Path>
  86. <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">
  87. <Path.Fill>
  88. <LinearGradientBrush StartPoint="1,1" EndPoint="0,0">
  89. <GradientStop Color="Gray" Offset="0.0" />
  90. <GradientStop Color="DarkGray" Offset="0.15" />
  91. <GradientStop Color="White" Offset="0.5" />
  92. <GradientStop Color="DarkGray" Offset="0.85" />
  93. <GradientStop Color="Gray" Offset="1" />
  94. </LinearGradientBrush>
  95. </Path.Fill>
  96. </Path>
  97. <Ellipse Width="3" Height="3" Canvas.Left="115" Canvas.Top="-9" RenderTransformOrigin="0.625,-0.25" HorizontalAlignment="Center" VerticalAlignment="Top">
  98. <Ellipse.Fill>
  99. <LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
  100. <GradientStop Color="Black" Offset="0.0" />
  101. <GradientStop Color="White" Offset="0.5" />
  102. <GradientStop Color="Black" Offset="1" />
  103. </LinearGradientBrush>
  104. </Ellipse.Fill>
  105. </Ellipse>
  106. <Ellipse Width="3" Height="3" Canvas.Left="132" Canvas.Top="-9" RenderTransformOrigin="0.625,-0.25" HorizontalAlignment="Center" VerticalAlignment="Top">
  107. <Ellipse.Fill>
  108. <LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
  109. <GradientStop Color="Black" Offset="0.0" />
  110. <GradientStop Color="White" Offset="0.5" />
  111. <GradientStop Color="Black" Offset="1" />
  112. </LinearGradientBrush>
  113. </Ellipse.Fill>
  114. </Ellipse>
  115. </Canvas>
  116. <!--PUF2Arm-->
  117. <Canvas Width="33" Height="65" Canvas.Top="25" Canvas.Left="322" Visibility="{Binding PufName, ElementName=pufControl,Converter={StaticResource stringToVisibility1}}" RenderTransformOrigin="0.5,0.5">
  118. <Canvas.RenderTransform>
  119. <TransformGroup>
  120. <ScaleTransform/>
  121. <SkewTransform/>
  122. <RotateTransform Angle="-180"/>
  123. <TranslateTransform/>
  124. </TransformGroup>
  125. </Canvas.RenderTransform>
  126. <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">
  127. <Path.Fill>
  128. <LinearGradientBrush StartPoint="1,1" EndPoint="0.3,1">
  129. <GradientStop Color="DarkGray" Offset="0.0" />
  130. <GradientStop Color="Silver" Offset="0.25" />
  131. <GradientStop Color="White" Offset="0.5" />
  132. <GradientStop Color="Silver" Offset="0.75" />
  133. <GradientStop Color="DarkGray" Offset="1" />
  134. </LinearGradientBrush>
  135. </Path.Fill>
  136. </Path>
  137. <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">
  138. <Path.Fill>
  139. <LinearGradientBrush StartPoint="0,1" EndPoint="1,1">
  140. <GradientStop Color="Gray" Offset="0.0" />
  141. <GradientStop Color="White" Offset="0.15" />
  142. <GradientStop Color="DarkGray" Offset="0.5" />
  143. <GradientStop Color="White" Offset="0.85" />
  144. <GradientStop Color="Gray" Offset="1" />
  145. </LinearGradientBrush>
  146. </Path.Fill>
  147. </Path>
  148. <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">
  149. <Path.Fill>
  150. <LinearGradientBrush StartPoint="1,1" EndPoint="0,0">
  151. <GradientStop Color="Gray" Offset="0.0" />
  152. <GradientStop Color="DarkGray" Offset="0.15" />
  153. <GradientStop Color="White" Offset="0.5" />
  154. <GradientStop Color="DarkGray" Offset="0.85" />
  155. <GradientStop Color="Gray" Offset="1" />
  156. </LinearGradientBrush>
  157. </Path.Fill>
  158. </Path>
  159. <Ellipse Width="3" Height="3" Canvas.Left="115" Canvas.Top="-9" RenderTransformOrigin="0.625,-0.25" HorizontalAlignment="Center" VerticalAlignment="Top">
  160. <Ellipse.Fill>
  161. <LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
  162. <GradientStop Color="Black" Offset="0.0" />
  163. <GradientStop Color="White" Offset="0.5" />
  164. <GradientStop Color="Black" Offset="1" />
  165. </LinearGradientBrush>
  166. </Ellipse.Fill>
  167. </Ellipse>
  168. <Ellipse Width="3" Height="3" Canvas.Left="132" Canvas.Top="-9" RenderTransformOrigin="0.625,-0.25" HorizontalAlignment="Center" VerticalAlignment="Top">
  169. <Ellipse.Fill>
  170. <LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
  171. <GradientStop Color="Black" Offset="0.0" />
  172. <GradientStop Color="White" Offset="0.5" />
  173. <GradientStop Color="Black" Offset="1" />
  174. </LinearGradientBrush>
  175. </Ellipse.Fill>
  176. </Ellipse>
  177. </Canvas>
  178. <Canvas Width="450" Height="150" RenderTransformOrigin="0.5,0.5">
  179. <Canvas.RenderTransform>
  180. <TransformGroup>
  181. <!--PUF旋转-->
  182. <RotateTransform Angle="{Binding ElementName=pufControl, Path=PufFlipPosition}"/>
  183. </TransformGroup>
  184. </Canvas.RenderTransform>
  185. <local:PufArmControl Canvas.Left="101" Canvas.Top="65" HorizontalAlignment="Left" VerticalAlignment="Center"/>
  186. <!--PUFA-->
  187. <Viewbox Stretch="Uniform" Width="200" Height="200" Canvas.Top="-40" Canvas.Left="15">
  188. <Canvas UseLayoutRounding="False" Width="93.693" Height="112.5" HorizontalAlignment="Left" VerticalAlignment="Top">
  189. <Canvas Width="72.522" Height="72.521" Canvas.Left="10.473" Canvas.Top="28.781">
  190. <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">
  191. <Path.Fill>
  192. <RadialGradientBrush Center="0.5,0.5" RadiusX="0.5" RadiusY="0.5" GradientOrigin="0.5,0.5">
  193. <RadialGradientBrush.GradientStops>
  194. <GradientStop Color="#FFE5E2DF" Offset="0" />
  195. <GradientStop Color="#FFFFFFFF" Offset="0" />
  196. <GradientStop Color="#FFADAEB0" Offset="0.52" />
  197. <GradientStop Color="sc#1, 0.238698155, 0.250727534, 0.259264916" Offset="0.82" />
  198. <GradientStop Color="#FF454F52" Offset="1" />
  199. </RadialGradientBrush.GradientStops>
  200. </RadialGradientBrush>
  201. </Path.Fill>
  202. </Path>
  203. <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" />
  204. </Canvas>
  205. <Canvas Tag="#00000000,#FF008000,Original,0,None" Width="56.555" Height="56.556" Canvas.Left="18.57" Canvas.Top="36.762">
  206. <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" />
  207. <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" />
  208. </Canvas>
  209. </Canvas>
  210. </Viewbox>
  211. <!--PUFB-->
  212. <Viewbox x:Name="PUFB" Visibility="Visible" Stretch="Uniform" Width="200" Height="200" Canvas.Top="-40" Canvas.Left="238">
  213. <Canvas UseLayoutRounding="False" Width="93.693" Height="112.5" HorizontalAlignment="Center" VerticalAlignment="Center">
  214. <Canvas Width="72.522" Height="72.521" Canvas.Left="10.473" Canvas.Top="28.781">
  215. <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">
  216. <Path.Fill>
  217. <RadialGradientBrush Center="0.5,0.5" RadiusX="0.5" RadiusY="0.5" GradientOrigin="0.5,0.5">
  218. <RadialGradientBrush.GradientStops>
  219. <GradientStop Color="#FFE5E2DF" Offset="0" />
  220. <GradientStop Color="#FFFFFFFF" Offset="0" />
  221. <GradientStop Color="#FFADAEB0" Offset="0.52" />
  222. <GradientStop Color="sc#1, 0.238698155, 0.250727534, 0.259264916" Offset="0.82" />
  223. <GradientStop Color="#FF454F52" Offset="1" />
  224. </RadialGradientBrush.GradientStops>
  225. </RadialGradientBrush>
  226. </Path.Fill>
  227. </Path>
  228. <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" />
  229. </Canvas>
  230. <Canvas Tag="#00000000,#FF008000,Original,0,None" Width="56.555" Height="56.556" Canvas.Left="18.57" Canvas.Top="36.762">
  231. <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" />
  232. <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" />
  233. </Canvas>
  234. </Canvas>
  235. </Viewbox>
  236. <StackPanel Canvas.Top="65" Canvas.Left="155" Panel.ZIndex="99">
  237. <TextBlock FontSize="20" Text="{Binding PufName, ElementName=pufControl}" TextAlignment="Center" Width="130"/>
  238. </StackPanel>
  239. <TextBlock Text="A" FontSize="22" Foreground="Black" Canvas.Left="330" Canvas.Top="60" HorizontalAlignment="Left" VerticalAlignment="Top"/>
  240. <TextBlock Text="B" FontSize="22" Foreground="Black" Canvas.Left="108" Canvas.Top="65" Height="23" Width="14" HorizontalAlignment="Center" VerticalAlignment="Top"/>
  241. <Viewbox Width="126" Height="126" Canvas.Left="52" Canvas.Top="12">
  242. <local:WaferCtrl WaferData="{Binding ElementName=pufControl, Path=RobotWaferB}"/>
  243. </Viewbox>
  244. <Viewbox Width="126" Height="126" Canvas.Left="275" Canvas.Top="12">
  245. <local:WaferCtrl WaferData="{Binding ElementName=pufControl, Path=RobotWaferA}"/>
  246. </Viewbox>
  247. </Canvas>
  248. </Canvas>
  249. </Viewbox>
  250. </UserControl>