WaferCtrl.xaml 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345
  1. <UserControl x:Class="VirgoUI.Controls.Parts.WaferCtrl"
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4. xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
  5. xmlns:local="clr-namespace:Aitex.UI.RecipeEditor;assembly=RecipeEditorControl"
  6. xmlns:cal="http://www.caliburn.org"
  7. xmlns:sys="clr-namespace:System;assembly=mscorlib"
  8. xmlns:ctrl="http://OpenSEMI.Ctrlib.com/presentation">
  9. <UserControl.Resources>
  10. <Style x:Key="{x:Type ctrl:Wafer}" TargetType="{x:Type ctrl:Wafer}">
  11. <Setter Property="Template">
  12. <Setter.Value>
  13. <ControlTemplate TargetType="{x:Type ctrl:Wafer}">
  14. <Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}">
  15. <FrameworkElement.ToolTip>
  16. <ToolTip Name="tb_tooltip">
  17. <StackPanel Orientation="Vertical">
  18. <TextBlock Text="{Binding WaferTooltip, RelativeSource={RelativeSource TemplatedParent}}" />
  19. </StackPanel>
  20. </ToolTip>
  21. </FrameworkElement.ToolTip>
  22. <Grid>
  23. <Rectangle Name="WaferCtrl_FrontView" Width="90" Height="11" Stroke="#FF232200">
  24. <Shape.Fill>
  25. <LinearGradientBrush EndPoint="1,0.5" StartPoint="0,0.5">
  26. <GradientStop Color="#FFB88700" Offset="0" />
  27. <GradientStop Color="#FFB88700" Offset="1" />
  28. <GradientStop Color="#FFF7E0A0" Offset="0.5" />
  29. </LinearGradientBrush>
  30. </Shape.Fill>
  31. </Rectangle>
  32. <Grid Name="WaferCtrl_TopView" Width="65" Height="65" Visibility="Collapsed">
  33. <Rectangle Name="SSC_WaferBG" Stroke="#FF232200" Fill="#FFFFBB00" RadiusX="15" RadiusY="15"/>
  34. <Rectangle Name="SSC_Wafer1" RenderTransformOrigin="0.5,0.5" Margin="1" RadiusX="15" RadiusY="15">
  35. <UIElement.RenderTransform>
  36. <TransformGroup>
  37. <ScaleTransform />
  38. <SkewTransform />
  39. <RotateTransform Angle="75" />
  40. <TranslateTransform />
  41. </TransformGroup>
  42. </UIElement.RenderTransform>
  43. <Shape.Fill>
  44. <!--<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
  45. <GradientStop Color="#00E6E4AD" Offset="0" />
  46. <GradientStop Color="#00E6E4AD" Offset="1" />
  47. <GradientStop Color="White" Offset="0.45" />
  48. <GradientStop Color="White" Offset="0.55" />
  49. </LinearGradientBrush>-->
  50. <LinearGradientBrush EndPoint="1,0.5" StartPoint="0,0.5">
  51. <GradientStop Color="#FFB88700" Offset="0" />
  52. <GradientStop Color="#FFB88700" Offset="1" />
  53. <GradientStop Color="#FFF7E0A0" Offset="0.5" />
  54. </LinearGradientBrush>
  55. </Shape.Fill>
  56. </Rectangle>
  57. <Rectangle Name="SSC_Wafer2" Opacity="0.75" Margin="1" RenderTransformOrigin="0.5,0.5">
  58. <Shape.Fill>
  59. <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
  60. <GradientStop Color="#00E6E4AD" Offset="0" />
  61. <GradientStop Color="#00E6E4AD" Offset="1" />
  62. <GradientStop Color="#FFAF8100" Offset="0.5" />
  63. </LinearGradientBrush>
  64. </Shape.Fill>
  65. </Rectangle>
  66. </Grid>
  67. <TextBlock Name="Border_Txt" TextWrapping="NoWrap" FontSize="10" VerticalAlignment="Center" HorizontalAlignment="Center" Foreground="{DynamicResource FG_Black}" FontFamily="Arial" Text="{Binding Path=SourceName, RelativeSource={RelativeSource TemplatedParent}}" />
  68. <TextBlock Name="Border_question" TextWrapping="NoWrap" Text="?" FontSize="14" VerticalAlignment="Center" HorizontalAlignment="Center" Foreground="#FFFF0000" FontWeight="Bold" FontFamily="Arial" Visibility="{Binding Path=DuplicatedVisibility, RelativeSource={RelativeSource TemplatedParent}}">
  69. <UIElement.Effect>
  70. <DropShadowEffect ShadowDepth="0" Color="White" BlurRadius="6" />
  71. </UIElement.Effect>
  72. </TextBlock>
  73. </Grid>
  74. </Border>
  75. <ControlTemplate.Triggers>
  76. <Trigger Value="{x:Static sys:String.Empty}" Property="ctrl:Wafer.SourceName">
  77. <Setter TargetName="Border_Txt" Property="Visibility" Value="Collapsed" />
  78. </Trigger>
  79. <Trigger Value="{x:Static sys:String.Empty}" Property="ctrl:Wafer.WaferTooltip">
  80. <Setter TargetName="tb_tooltip" Property="Visibility" Value="Collapsed" />
  81. </Trigger>
  82. <Trigger Property="ctrl:Wafer.ViewType" Value="Front">
  83. <Setter TargetName="WaferCtrl_FrontView" Property="Visibility" Value="Visible" />
  84. <Setter TargetName="WaferCtrl_TopView" Property="Visibility" Value="Collapsed" />
  85. </Trigger>
  86. <Trigger Property="ctrl:Wafer.ViewType" Value="Top">
  87. <Setter TargetName="WaferCtrl_FrontView" Property="Visibility" Value="Collapsed" />
  88. <Setter TargetName="WaferCtrl_TopView" Property="Visibility" Value="Visible" />
  89. </Trigger>
  90. <Trigger Property="ctrl:Wafer.WaferStatus" Value="0">
  91. <Setter TargetName="WaferCtrl_FrontView" Property="Shape.Stroke" Value="#002F4E48" />
  92. <Setter TargetName="WaferCtrl_FrontView" Property="Shape.Fill">
  93. <Setter.Value>
  94. <LinearGradientBrush EndPoint="1,0.5" StartPoint="0,0.5">
  95. <GradientStop Color="#00B88700" Offset="0" />
  96. <GradientStop Color="#00B88700" Offset="1" />
  97. <GradientStop Color="#00F7E0A0" Offset="0.5" />
  98. </LinearGradientBrush>
  99. </Setter.Value>
  100. </Setter>
  101. <Setter TargetName="SSC_WaferBG" Property="Shape.Stroke" Value="#002F4E48" />
  102. <Setter TargetName="SSC_WaferBG" Property="Shape.Fill" Value="#00FFBB00" />
  103. <Setter TargetName="SSC_Wafer1" Property="Shape.Fill">
  104. <Setter.Value>
  105. <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
  106. <GradientStop Color="#00E6E4AD" Offset="0" />
  107. <GradientStop Color="#00E6E4AD" Offset="1" />
  108. <GradientStop Color="#00E6E4AD" Offset="0.45" />
  109. <GradientStop Color="#00E6E4AD" Offset="0.55" />
  110. </LinearGradientBrush>
  111. </Setter.Value>
  112. </Setter>
  113. <Setter TargetName="SSC_Wafer2" Property="Shape.Fill">
  114. <Setter.Value>
  115. <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
  116. <GradientStop Color="#00E6E4AD" Offset="0" />
  117. <GradientStop Color="#00E6E4AD" Offset="1" />
  118. <GradientStop Color="#00AF8100" Offset="0.5" />
  119. </LinearGradientBrush>
  120. </Setter.Value>
  121. </Setter>
  122. <Setter TargetName="tb_tooltip" Property="Visibility" Value="Collapsed" />
  123. <Setter TargetName="Border_Txt" Property="Visibility" Value="Collapsed" />
  124. </Trigger>
  125. <Trigger Property="ctrl:Wafer.WaferStatus" Value="1">
  126. <Setter TargetName="WaferCtrl_FrontView" Property="Shape.Stroke" Value="#FF232200" />
  127. <Setter TargetName="WaferCtrl_FrontView" Property="Shape.Fill">
  128. <Setter.Value>
  129. <LinearGradientBrush EndPoint="1,0.5" StartPoint="0,0.5">
  130. <GradientStop Color="#FFB88700" Offset="0" />
  131. <GradientStop Color="#FFB88700" Offset="1" />
  132. <GradientStop Color="#FFF7E0A0" Offset="0.5" />
  133. </LinearGradientBrush>
  134. </Setter.Value>
  135. </Setter>
  136. <Setter TargetName="SSC_WaferBG" Property="Shape.Stroke" Value="#FF232200" />
  137. <Setter TargetName="SSC_WaferBG" Property="Shape.Fill" Value="#FFFFBB00" />
  138. <Setter TargetName="SSC_Wafer1" Property="Shape.Fill">
  139. <Setter.Value>
  140. <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
  141. <GradientStop Color="#00E6E4AD" Offset="0" />
  142. <GradientStop Color="#00E6E4AD" Offset="1" />
  143. <GradientStop Color="White" Offset="0.45" />
  144. <GradientStop Color="White" Offset="0.55" />
  145. </LinearGradientBrush>
  146. </Setter.Value>
  147. </Setter>
  148. <Setter TargetName="SSC_Wafer2" Property="Shape.Fill">
  149. <Setter.Value>
  150. <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
  151. <GradientStop Color="#00E6E4AD" Offset="0" />
  152. <GradientStop Color="#00E6E4AD" Offset="1" />
  153. <GradientStop Color="#FFAF8100" Offset="0.5" />
  154. </LinearGradientBrush>
  155. </Setter.Value>
  156. </Setter>
  157. <Setter TargetName="tb_tooltip" Property="Visibility" Value="Collapsed" />
  158. </Trigger>
  159. <Trigger Property="ctrl:Wafer.WaferStatus" Value="2">
  160. <Setter TargetName="WaferCtrl_FrontView" Property="Shape.Stroke" Value="#FF000B14" />
  161. <Setter TargetName="WaferCtrl_FrontView" Property="Shape.Fill">
  162. <Setter.Value>
  163. <LinearGradientBrush EndPoint="1,0.5" StartPoint="0,0.5">
  164. <GradientStop Color="#FF3333FF" Offset="0" />
  165. <GradientStop Color="#FF3333FF" Offset="1" />
  166. <GradientStop Color="#FFE1E1FF" Offset="0.5" />
  167. </LinearGradientBrush>
  168. </Setter.Value>
  169. </Setter>
  170. <Setter TargetName="SSC_WaferBG" Property="Shape.Stroke" Value="#FF001154" />
  171. <Setter TargetName="SSC_WaferBG" Property="Shape.Fill" Value="#FF6E6EFF" />
  172. <Setter TargetName="SSC_Wafer1" Property="Shape.Fill">
  173. <Setter.Value>
  174. <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
  175. <GradientStop Color="#00E1E1FF" Offset="0" />
  176. <GradientStop Color="#00E1E1FF" Offset="1" />
  177. <GradientStop Color="#FFE1E1FF" Offset="0.45" />
  178. <GradientStop Color="#FFE1E1FF" Offset="0.55" />
  179. </LinearGradientBrush>
  180. </Setter.Value>
  181. </Setter>
  182. <Setter TargetName="SSC_Wafer2" Property="Shape.Fill">
  183. <Setter.Value>
  184. <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
  185. <GradientStop Color="#000000FF" Offset="0" />
  186. <GradientStop Color="#000000FF" Offset="1" />
  187. <GradientStop Color="#FF3D3DFF" Offset="0.5" />
  188. </LinearGradientBrush>
  189. </Setter.Value>
  190. </Setter>
  191. </Trigger>
  192. <Trigger Property="ctrl:Wafer.WaferStatus" Value="3">
  193. <Setter TargetName="WaferCtrl_FrontView" Property="Shape.Stroke" Value="#FF000B14" />
  194. <Setter TargetName="WaferCtrl_FrontView" Property="Shape.Fill">
  195. <Setter.Value>
  196. <LinearGradientBrush EndPoint="1,0.5" StartPoint="0,0.5">
  197. <GradientStop Color="Cyan" Offset="0" />
  198. <GradientStop Color="Cyan" Offset="1" />
  199. <GradientStop Color="#FFE7F5F9" Offset="0.5" />
  200. </LinearGradientBrush>
  201. </Setter.Value>
  202. </Setter>
  203. <Setter TargetName="SSC_WaferBG" Property="Shape.Stroke" Value="#FF001154" />
  204. <Setter TargetName="SSC_WaferBG" Property="Shape.Fill" Value="#FF00E4E4" />
  205. <Setter TargetName="SSC_Wafer1" Property="Shape.Fill">
  206. <Setter.Value>
  207. <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
  208. <GradientStop Color="#0000FFFF" Offset="0" />
  209. <GradientStop Color="#0000FFFF" Offset="1" />
  210. <GradientStop Color="White" Offset="0.45" />
  211. <GradientStop Color="White" Offset="0.55" />
  212. </LinearGradientBrush>
  213. </Setter.Value>
  214. </Setter>
  215. <Setter TargetName="SSC_Wafer2" Property="Shape.Fill">
  216. <Setter.Value>
  217. <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
  218. <GradientStop Color="#0000FFFF" Offset="0" />
  219. <GradientStop Color="#0000FFFF" Offset="1" />
  220. <GradientStop Color="#FF00B2B2" Offset="0.5" />
  221. </LinearGradientBrush>
  222. </Setter.Value>
  223. </Setter>
  224. </Trigger>
  225. <Trigger Property="ctrl:Wafer.WaferStatus" Value="4">
  226. <Setter TargetName="WaferCtrl_FrontView" Property="Shape.Stroke" Value="#FF000B14" />
  227. <Setter TargetName="WaferCtrl_FrontView" Property="Shape.Fill">
  228. <Setter.Value>
  229. <LinearGradientBrush EndPoint="1,0.5" StartPoint="0,0.5">
  230. <GradientStop Color="#FF00B400" Offset="0" />
  231. <GradientStop Color="#FF00B400" Offset="1" />
  232. <GradientStop Color="#FFA9FFA9" Offset="0.5" />
  233. </LinearGradientBrush>
  234. </Setter.Value>
  235. </Setter>
  236. <Setter TargetName="SSC_WaferBG" Property="Shape.Stroke" Value="#FF002700" />
  237. <Setter TargetName="SSC_WaferBG" Property="Shape.Fill" Value="#FF19FF19" />
  238. <Setter TargetName="SSC_Wafer1" Property="Shape.Fill">
  239. <Setter.Value>
  240. <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
  241. <GradientStop Offset="0" Color="#00B3FFB3" />
  242. <GradientStop Offset="1" Color="#00B3FFB3" />
  243. <GradientStop Color="White" Offset="0.45" />
  244. <GradientStop Color="White" Offset="0.55" />
  245. </LinearGradientBrush>
  246. </Setter.Value>
  247. </Setter>
  248. <Setter TargetName="SSC_Wafer2" Property="Shape.Fill">
  249. <Setter.Value>
  250. <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
  251. <GradientStop Color="#00008000" Offset="0" />
  252. <GradientStop Color="#00008000" Offset="1" />
  253. <GradientStop Color="#FF00A300" Offset="0.5" />
  254. </LinearGradientBrush>
  255. </Setter.Value>
  256. </Setter>
  257. </Trigger>
  258. <Trigger Property="ctrl:Wafer.WaferStatus" Value="5">
  259. <Setter TargetName="WaferCtrl_FrontView" Property="Shape.Stroke" Value="#FF000B14" />
  260. <Setter TargetName="WaferCtrl_FrontView" Property="Shape.Fill">
  261. <Setter.Value>
  262. <LinearGradientBrush EndPoint="1,0.5" StartPoint="0,0.5">
  263. <GradientStop Color="Red" Offset="0" />
  264. <GradientStop Color="Red" Offset="1" />
  265. <GradientStop Color="#FFFFD7D7" Offset="0.5" />
  266. </LinearGradientBrush>
  267. </Setter.Value>
  268. </Setter>
  269. <Setter TargetName="SSC_WaferBG" Property="Shape.Stroke" Value="#FF500000" />
  270. <Setter TargetName="SSC_WaferBG" Property="Shape.Fill" Value="#FFFF5D5D" />
  271. <Setter TargetName="SSC_Wafer1" Property="Shape.Fill">
  272. <Setter.Value>
  273. <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
  274. <GradientStop Color="#00FF0000" Offset="1" />
  275. <GradientStop Color="White" Offset="0.45" />
  276. <GradientStop Color="White" Offset="0.55" />
  277. <GradientStop Color="#00FF0000" />
  278. </LinearGradientBrush>
  279. </Setter.Value>
  280. </Setter>
  281. <Setter TargetName="SSC_Wafer2" Property="Shape.Fill">
  282. <Setter.Value>
  283. <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
  284. <GradientStop Color="#00FF0000" Offset="0" />
  285. <GradientStop Color="#00FF0000" Offset="1" />
  286. <GradientStop Color="Red" Offset="0.5" />
  287. </LinearGradientBrush>
  288. </Setter.Value>
  289. </Setter>
  290. </Trigger>
  291. </ControlTemplate.Triggers>
  292. </ControlTemplate>
  293. </Setter.Value>
  294. </Setter>
  295. </Style>
  296. <local:TimeSpanConverter x:Key="timeSpanConverter" />
  297. <local:NumConverter x:Key="numConverter" />
  298. <local:BoolConverter x:Key="boolConverter" />
  299. <local:BoolToVisibilityConverter x:Key="boolToVisibilityConverter"/>
  300. </UserControl.Resources>
  301. <Grid RenderTransformOrigin="0.5,0.5">
  302. <ctrl:Slot ViewType="Top" WaferStatus="{Binding WaferStatus }" SlotID="{Binding SlotID}" ModuleID="{Binding ModuleID}" SourceName="{Binding SourceName}"
  303. DataContext="{Binding WaferData,RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}" HorizontalAlignment="Center" VerticalAlignment="Center">
  304. <i:Interaction.Triggers>
  305. <i:EventTrigger EventName="SlotMouseButtonDown">
  306. <cal:ActionMessage MethodName="OnMouseUp">
  307. <cal:Parameter Value="$source" />
  308. <cal:Parameter Value="$eventargs" />
  309. </cal:ActionMessage>
  310. </i:EventTrigger>
  311. <i:EventTrigger EventName="WaferTransferStarted">
  312. <cal:ActionMessage MethodName="OnWaferTransfer">
  313. <cal:Parameter Value="$eventargs" />
  314. </cal:ActionMessage>
  315. </i:EventTrigger>
  316. </i:Interaction.Triggers>
  317. </ctrl:Slot>
  318. <!--<Ellipse Stretch="Fill" Visibility="{Binding IsReversed,Converter={StaticResource boolToVisibilityConverter}}" DataContext="{Binding WaferData,RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}" Opacity="0.5" Fill="{StaticResource turnWafer}" StrokeThickness="2" StrokeLineJoin="Round" Stroke="#FF00641D" Width="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=ActualWidth}" Height="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=ActualWidth}">
  319. </Ellipse>-->
  320. <ctrl:Slot Opacity="0" ViewType="Top" WaferStatus="{Binding WaferStatus}" SlotID="{Binding SlotID}" ModuleID="{Binding ModuleID}" SourceName="{Binding SourceName}"
  321. DataContext="{Binding WaferData,RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}" HorizontalAlignment="Center" VerticalAlignment="Center">
  322. <i:Interaction.Triggers>
  323. <i:EventTrigger EventName="SlotMouseButtonDown">
  324. <cal:ActionMessage MethodName="OnMouseUp">
  325. <cal:Parameter Value="$source" />
  326. <cal:Parameter Value="$eventargs" />
  327. </cal:ActionMessage>
  328. </i:EventTrigger>
  329. <i:EventTrigger EventName="WaferTransferStarted">
  330. <cal:ActionMessage MethodName="OnWaferTransfer">
  331. <cal:Parameter Value="$eventargs" />
  332. </cal:ActionMessage>
  333. </i:EventTrigger>
  334. </i:Interaction.Triggers>
  335. </ctrl:Slot>
  336. <!--<Canvas Width="12" Height="14" Margin="0 4 0 5" HorizontalAlignment="Center" VerticalAlignment="Top" Visibility="{Binding IsReversed,Converter={StaticResource boolToVisibilityConverter}}" DataContext="{Binding WaferData,RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}">
  337. <TextBlock x:Name="lbWaferInfo" Text="{Binding Orient, UpdateSourceTrigger=Explicit}" FontSize="14" Canvas.Left="2"></TextBlock>
  338. </Canvas>-->
  339. </Grid>
  340. </UserControl>