| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194 | <UserControl x:Class="VirgoUI.Client.Controls.Parts.Efem"             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:parts="clr-namespace:VirgoUI.Controls.Parts"             xmlns:parts1="clr-namespace:VirgoUI.Client.Controls.Parts"             xmlns:converters="clr-namespace:Aitex.Core.UI.Converters;assembly=MECF.Framework.UI.Core"             xmlns:deviceControl="clr-namespace:Aitex.Core.UI.DeviceControl;assembly=MECF.Framework.UI.Core"             mc:Ignorable="d"              d:DesignHeight="636" Width="905">    <UserControl.Resources>        <ResourceDictionary>            <ResourceDictionary.MergedDictionaries>                <ResourceDictionary Source="/VirgoUI;component/Themes/Generic.xaml" />            </ResourceDictionary.MergedDictionaries>            <converters:bool2VisibilityConverter x:Key="bool2VisibilityConvert"/>        </ResourceDictionary>    </UserControl.Resources>    <Canvas Margin="0">        <Canvas.Resources>            <Storyboard x:Key="ATMDoor_Open">                <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Height)" >                    <EasingDoubleKeyFrame KeyTime="0" Value="88"/>                    <EasingDoubleKeyFrame KeyTime="0:0:0.5" Value="38"/>                </DoubleAnimationUsingKeyFrames>            </Storyboard>            <Storyboard x:Key="ATMDoor_Close">                <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Height)" >                    <EasingDoubleKeyFrame KeyTime="0" Value="38"/>                    <EasingDoubleKeyFrame KeyTime="0:0:0.5" Value="88"/>                </DoubleAnimationUsingKeyFrames>            </Storyboard>            <Style TargetType="{x:Type Rectangle}" x:Key="SlitValveA_Animation" >                <Style.Triggers>                    <DataTrigger Binding="{Binding PMASlitValveIsOpen}" Value="true">                        <DataTrigger.EnterActions>                            <BeginStoryboard Storyboard="{StaticResource ATMDoor_Open}"/>                        </DataTrigger.EnterActions>                        <DataTrigger.ExitActions>                            <BeginStoryboard Storyboard="{StaticResource ATMDoor_Close}"/>                        </DataTrigger.ExitActions>                    </DataTrigger>                </Style.Triggers>            </Style>            <Style TargetType="{x:Type Rectangle}" x:Key="SlitValveB_Animation" >                <Style.Triggers>                    <DataTrigger Binding="{Binding PMBSlitValveIsOpen}" Value="true">                        <DataTrigger.EnterActions>                            <BeginStoryboard Storyboard="{StaticResource ATMDoor_Open}"/>                        </DataTrigger.EnterActions>                        <DataTrigger.ExitActions>                            <BeginStoryboard Storyboard="{StaticResource ATMDoor_Close}"/>                        </DataTrigger.ExitActions>                    </DataTrigger>                </Style.Triggers>            </Style>        </Canvas.Resources>        <Image Source="/VirgoUI;component/Controls/Assets/Image1/efembg.png" Canvas.Left="95" Canvas.Top="177" Height="280" Width="644" />        <Image Source="/VirgoUI;component/Controls/Assets/Image1/walk.png" Canvas.Left="241" Canvas.Top="310" Width="350"  />        <Image x:Name="imgBuffer" Source="/VirgoUI;component/Controls/Assets/Image1/station.png" Canvas.Left="596" Canvas.Top="225" Height="95" Width="105" Visibility="{Binding IsBufferIntalled, Converter={StaticResource bool2VisibilityConvert}}" />        <Image x:Name="imgFlipper" Source="/VirgoUI;component/Controls/Assets/Image1/station.png" Canvas.Left="130" Canvas.Top="275" Height="95" Width="105" Visibility="{Binding IsFlipperInstalled, Converter={StaticResource bool2VisibilityConvert}}" />        <Image x:Name="imgAligner1" Source="/VirgoUI;component/Controls/Assets/Image1/station.png" Canvas.Left="595" Canvas.Top="315" Height="95" Width="105" Visibility="{Binding IsAligner1Installed, Converter={StaticResource bool2VisibilityConvert}}" />        <Image x:Name="imgAligner2" Source="/VirgoUI;component/Controls/Assets/Image1/station.png" Canvas.Left="596" Canvas.Top="225" Height="95" Width="105" Visibility="{Binding IsAligner2Installed, Converter={StaticResource bool2VisibilityConvert}}"/>        <Image x:Name="imgCooling1" Source="/VirgoUI;component/Controls/Assets/Image1/station.png" Canvas.Left="130" Canvas.Top="315" Height="95" Width="105" Visibility="{Binding IsCooling1Installed, Converter={StaticResource bool2VisibilityConvert}}" />        <Image x:Name="imgCooling2" Source="/VirgoUI;component/Controls/Assets/Image1/station.png" Canvas.Left="130" Canvas.Top="225" Height="95" Width="105" Visibility="{Binding IsCooling2Installed, Converter={StaticResource bool2VisibilityConvert}}"/>        <Image Source="/VirgoUI;component/Controls/Assets/Image1/pm2.png" Canvas.Left="199" Canvas.Top="60" Height="133" Width="174"  Visibility="{Binding IsPMAInstalled, Converter={StaticResource bool2VisibilityConvert}}" />        <Image Source="/VirgoUI;component/Controls/Assets/Image1/pm2.png" Canvas.Left="445" Canvas.Top="60" Height="133" Width="174"   Visibility="{Binding IsPMBInstalled, Converter={StaticResource bool2VisibilityConvert}}" />        <Image Source="/VirgoUI;component/Controls/Assets/Image1/ef03.png" Canvas.Left="429" Canvas.Top="445" Height="123" Width="146"  Visibility="{Binding Foup2Visibility}"  />        <Image Source="/VirgoUI;component/Controls/Assets/Image1/ef03.png" Canvas.Left="243" Canvas.Top="445" Height="123" Width="146"   Visibility="{Binding Foup1Visibility}" />        <Image Source="/VirgoUI;component/Controls/Assets/Image1/ef00.png" Canvas.Left="252" Canvas.Top="440" Height="12" Width="128"   Visibility="{Binding Foup1Visibility}" />        <Image Source="/VirgoUI;component/Controls/Assets/Image1/ef00.png" Canvas.Left="438" Canvas.Top="440" Height="12" Width="128"   Visibility="{Binding Foup2Visibility}" />        <Path Data="M361.75,148 L347.25,142.75 381.5,50.25 496.5,91.75 463.5,183.5 446.25,176.75 441.25,190.25 471.75,201.5 514.5,83 372.5,31.25 330,150 357,160 z" Fill="{Binding PMBBackground}" Visibility="{Binding IsPMBInstalled, Converter={StaticResource bool2VisibilityConvert}}" Opacity="0.7" Height="183.08" Canvas.Left="433.277" Stretch="Fill" Canvas.Top="35.131" Width="196" RenderTransformOrigin="0.5,0.5">            <Path.RenderTransform>                <TransformGroup>                    <ScaleTransform/>                    <SkewTransform/>                    <RotateTransform Angle="-20.212"/>                    <TranslateTransform/>                </TransformGroup>            </Path.RenderTransform>        </Path>        <Path Data="M361.75,148 L347.25,142.75 381.5,50.25 496.5,91.75 463.5,183.5 446.25,176.75 441.25,190.25 471.75,201.5 514.5,83 372.5,31.25 330,150 357,160 z" Fill="{Binding PMABackground}" Visibility="{Binding IsPMAInstalled, Converter={StaticResource bool2VisibilityConvert}}" Opacity="0.7" Height="183.08" Canvas.Left="187.277" Stretch="Fill" Canvas.Top="35.131" Width="196" RenderTransformOrigin="0.5,0.5">            <Path.RenderTransform>                <TransformGroup>                    <ScaleTransform/>                    <SkewTransform/>                    <RotateTransform Angle="-20.212"/>                    <TranslateTransform/>                </TransformGroup>            </Path.RenderTransform>        </Path>        <parts:ATMDualArmRobot Canvas.Left="415" Canvas.Top="285" Wafer1="{Binding EfemRobotWafer1}"  Wafer2="{Binding EfemRobotWafer2}" RobotMoveInfo="{Binding EfemRobotMoveAction}"/>        <parts:WaferCtrl x:Name="bufferCtrl" Width="66" Height="66" Canvas.Left="615" Canvas.Top="240" WaferData="{Binding BufferWafer}" Visibility="{Binding IsBufferIntalled, Converter={StaticResource bool2VisibilityConvert}}" />        <parts:WaferCtrl x:Name="flipperCtrl" Width="66" Height="66" Canvas.Left="149" Canvas.Top="290" WaferData="{Binding FlipperWafer}"  Visibility="{Binding IsFlipperInstalled, Converter={StaticResource bool2VisibilityConvert}}"/>        <parts:WaferCtrl x:Name="aligner1Ctrl" Width="66" Height="66" Canvas.Left="615" Canvas.Top="330" WaferData="{Binding Aligner1Wafer}" Visibility="{Binding IsAligner1Installed, Converter={StaticResource bool2VisibilityConvert}}" />        <parts:WaferCtrl x:Name="aligner2Ctrl" Width="66" Height="66" Canvas.Left="615" Canvas.Top="240" WaferData="{Binding Aligner2Wafer}" Visibility="{Binding IsAligner2Installed, Converter={StaticResource bool2VisibilityConvert}}"/>        <parts:WaferCtrl x:Name="cooler1Ctrl" Width="66" Height="66" Canvas.Left="149" Canvas.Top="330" WaferData="{Binding Cooling1Wafer}" Visibility="{Binding IsCooling1Installed, Converter={StaticResource bool2VisibilityConvert}}"  />        <parts:WaferCtrl x:Name="cooler2Ctrl" Width="66" Height="66" Canvas.Left="149" Canvas.Top="240" WaferData="{Binding Cooling2Wafer}" Visibility="{Binding IsCooling2Installed, Converter={StaticResource bool2VisibilityConvert}}" />        <parts:WaferCtrl Width="66" Height="66" Canvas.Left="254" Canvas.Top="103" WaferData="{Binding PMAWafer}" Visibility="{Binding IsPMAInstalled, Converter={StaticResource bool2VisibilityConvert}}"/>        <parts:WaferCtrl Width="66" Height="66" Canvas.Left="500" Canvas.Top="103" WaferData="{Binding PMBWafer}" Visibility="{Binding IsPMBInstalled, Converter={StaticResource bool2VisibilityConvert}}"/>        <TextBlock x:Name="lblFlipper" Text="Flipper" Canvas.Left="105" Canvas.Top="268"  Visibility="{Binding IsFlipperInstalled, Converter={StaticResource bool2VisibilityConvert}}" />        <TextBlock x:Name="lblBuffer" Text="Cooling" Canvas.Left="690" Canvas.Top="225"  Visibility="{Binding IsBufferIntalled, Converter={StaticResource bool2VisibilityConvert}}"/>        <TextBlock x:Name="lblAligner1" Text="Aligner" Canvas.Left="690" Canvas.Top="325" Visibility="{Binding IsAligner1Installed, Converter={StaticResource bool2VisibilityConvert}}" />        <TextBlock x:Name="lblAligner2" Text="Aligner2" Canvas.Left="690" Canvas.Top="225" Visibility="{Binding IsAligner2Installed, Converter={StaticResource bool2VisibilityConvert}}" />        <TextBlock x:Name="lblCooler1" Text="Cooling1" Canvas.Left="105" Canvas.Top="325" Visibility="{Binding IsCooling1Installed, Converter={StaticResource bool2VisibilityConvert}}" />        <TextBlock x:Name="lblCooler2" Text="Cooling2" Canvas.Left="105" Canvas.Top="225" Visibility="{Binding IsCooling2Installed, Converter={StaticResource bool2VisibilityConvert}}" />        <Grid x:Name="Slit_valve" Width="11" Height="159" Canvas.Left="280" Canvas.Top="111" RenderTransformOrigin="0.5,0.5" >            <Grid.RenderTransform>                <TransformGroup>                    <ScaleTransform/>                    <SkewTransform/>                    <RotateTransform Angle="90"/>                    <TranslateTransform/>                </TransformGroup>            </Grid.RenderTransform>            <Rectangle x:Name="SlitValve_Top" Style="{StaticResource SlitValveA_Animation}" Fill="DimGray" Width="8" VerticalAlignment="Top" Height="88"   />            <Rectangle x:Name="SlitValve_Bottom" Style="{StaticResource SlitValveA_Animation}" Fill="DimGray" Width="8" VerticalAlignment="Bottom" Height="88" />        </Grid>        <Grid x:Name="Slit_valve1" Width="11" Height="159" Canvas.Left="526" Canvas.Top="111" RenderTransformOrigin="0.5,0.5" >            <Grid.RenderTransform>                <TransformGroup>                    <ScaleTransform/>                    <SkewTransform/>                    <RotateTransform Angle="90"/>                    <TranslateTransform/>                </TransformGroup>            </Grid.RenderTransform>            <Rectangle x:Name="SlitValve_Top1" Style="{StaticResource SlitValveB_Animation}" Fill="DimGray" Width="8" VerticalAlignment="Top" Height="88"   />            <Rectangle x:Name="SlitValve_Bottom1" Style="{StaticResource SlitValveB_Animation}" Fill="DimGray" Width="8" VerticalAlignment="Bottom" Height="88" />        </Grid>        <parts1:FoupTopView  IsFoupLoaded="{Binding IsLoadedLP1}"  Visibility="{Binding Foup1Visibility}"  Canvas.Left="252" Canvas.Top="427" Height="178" Width="128"/>        <parts1:FoupTopView  IsFoupLoaded="{Binding IsLoadedLP2}"  Visibility="{Binding Foup2Visibility}"  Canvas.Left="435" Canvas.Top="427" Height="178" Width="128"/>        <Grid  Grid.Row="0" Canvas.Left="22" Canvas.Top="482"  Visibility="{Binding ScannerVisibility}" >            <Grid.RowDefinitions>                <RowDefinition Height="35" />            </Grid.RowDefinitions>            <Grid.ColumnDefinitions>                <ColumnDefinition Width="75" />                <ColumnDefinition Width="150" />            </Grid.ColumnDefinitions>            <Rectangle Grid.Row="0" Grid.Column="0" Fill="#376092" Margin="0" Stroke="White" StrokeThickness="1"></Rectangle>            <TextBlock Grid.Row="0" Grid.Column="0" FontSize="13" Margin="3,0,0,0"  VerticalAlignment="Center"   Text="Carrier ID:"  Foreground="White" />            <Rectangle Grid.Row="0" Grid.Column="1" Fill="#95B3D7" Margin="0" Stroke="White" StrokeThickness="1"></Rectangle>            <deviceControl:AITBarcodeTextBox Grid.Row="0" Grid.Column="1" FontSize="12"   Foreground="White"  BarcodeText="{Binding LP1CarrierIDText, Mode=TwoWay}"  BarcodeInputChangedCommand="{Binding LP1CarrierIDChangedCommand}" MaxScanCount="1" />        </Grid>        <Grid  Grid.Row="0" Canvas.Left="575" Canvas.Top="482"  Visibility="{Binding ScannerVisibility}"   >            <Grid.RowDefinitions>                <RowDefinition Height="35" />            </Grid.RowDefinitions>            <Grid.ColumnDefinitions>                <ColumnDefinition Width="75" />                <ColumnDefinition Width="150" />            </Grid.ColumnDefinitions>            <Rectangle Grid.Row="0" Grid.Column="0" Fill="#376092" Margin="0" Stroke="White" StrokeThickness="1"></Rectangle>            <TextBlock Grid.Row="0" Grid.Column="0" FontSize="13" Margin="3,0,0,0" VerticalAlignment="Center"   Text="Carrier ID:"  Foreground="White" />            <Rectangle Grid.Row="0" Grid.Column="1" Fill="#95B3D7" Margin="0" Stroke="White" StrokeThickness="1"></Rectangle>            <deviceControl:AITBarcodeTextBox Grid.Row="0" Grid.Column="1" FontSize="12"   Foreground="White"  BarcodeText="{Binding LP2CarrierIDText, Mode=TwoWay}"  BarcodeInputChangedCommand="{Binding LP2CarrierIDChangedCommand}" MaxScanCount="1" />        </Grid>        <!--<parts1:Foup IdleVisibility="{Binding Foup1Idle, Converter={StaticResource BoolVisibilityConverter}}"                     ErrorVisibility="{Binding Foup1Error, Converter={StaticResource BoolVisibilityConverter}}"                     BusyVisibility="{Binding Foup1Busy, Converter={StaticResource BoolVisibilityConverter}}"                     CompleteVisibility="{Binding Foup1Complete, Converter={StaticResource BoolVisibilityConverter}}"                     Visibility="{Binding Foup1Present, Converter={StaticResource BoolVisibilityConverter}}" Width="70" Height="70" Canvas.Left="219" Canvas.Top="507"/>        <parts1:Foup             IdleVisibility="{Binding Foup2Idle, Converter={StaticResource BoolVisibilityConverter}}"            ErrorVisibility="{Binding Foup2Error, Converter={StaticResource BoolVisibilityConverter}}"            BusyVisibility="{Binding Foup2Busy, Converter={StaticResource BoolVisibilityConverter}}"            CompleteVisibility="{Binding Foup2Complete, Converter={StaticResource BoolVisibilityConverter}}"            Visibility="{Binding Foup2Present, Converter={StaticResource BoolVisibilityConverter}}" Width="70" Height="70" Canvas.Left="368" Canvas.Top="506"/>-->    </Canvas></UserControl>
 |