| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218 | <UserControl x:Class="Venus_MainPages.Views.PlatformView"             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:Venus_MainPages.Views"             xmlns:ctrls="clr-namespace:Venus_Themes.UserControls;assembly=Venus_Themes"             xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"             xmlns:converters="clr-namespace:Venus_Themes.Converters;assembly=Venus_Themes"             xmlns:customControls="clr-namespace:Venus_Themes.CustomControls;assembly=Venus_Themes"             mc:Ignorable="d"              xmlns:prism="http://prismlibrary.com/"             prism:ViewModelLocator.AutoWireViewModel="True"             d:DesignHeight="450" d:DesignWidth="1500">    <UserControl.Resources>        <converters:BoolToBool  x:Key="boolToBool"/>        <converters:BoolToColor x:Key="boolToColor"/>        <converters:BoolToColor2 x:Key="boolToColor2"/>        <converters:VisibilityToReverse x:Key="VisibilityToReverse"/>    </UserControl.Resources>    <Canvas>        <!--<ctrls:Chamber Canvas.Left="150" Canvas.Top="500"                                                />-->        <Image Canvas.Left="200" Canvas.Top="500"  Width="150" Height="150" Source="Pack://application:,,,/Venus_Themes;Component/Resources/LoadLock.png">            <Image.ContextMenu>                <ContextMenu Visibility="{Binding WaferIsVisibility,Converter={StaticResource VisibilityToReverse}}">                    <MenuItem Header="新建晶圆" Command="{Binding NewWaferCommand}"/>                </ContextMenu>            </Image.ContextMenu>        </Image>        <ctrls:WaferCtrl  Canvas.Left="242" Canvas.Top="542"  WaferData="{Binding PMAWafer}">            <ctrls:WaferCtrl.ContextMenu>                <ContextMenu >                    <MenuItem Header="删除晶圆" Command="{Binding DeleteWaferCommand}" />                </ContextMenu>            </ctrls:WaferCtrl.ContextMenu>        </ctrls:WaferCtrl>        <!--<Ellipse Stroke="White"  Width="80" Height="80" Canvas.Left="235" Canvas.Top="536" Visibility="{Binding PMAWaferIsVisibility}">            <Ellipse.ContextMenu>                <ContextMenu >                    <MenuItem Header="删除晶圆" Command="{Binding DeleteWaferCommand}" />                </ContextMenu>            </Ellipse.ContextMenu>            <Ellipse.Fill>                <LinearGradientBrush StartPoint="0.5 0" EndPoint="0.5 1">                    <GradientStop Color="Gray" Offset="0"/>                    <GradientStop Color="White"  Offset="0.7"/>                    <GradientStop Color="Silver" Offset="1"/>                </LinearGradientBrush>            </Ellipse.Fill>        </Ellipse>-->                <ctrls:FlowPipe x:Name="N2Pipe1"  Height="8"  Width="120" Canvas.Left="90"  Canvas.Top="120" IsFlowing="{Binding LoadLockVentValveIsOpen,Mode=TwoWay}">                    </ctrls:FlowPipe>        <ctrls:FlowPipe  x:Name="purgeFlow2"    Height="8"  Width="142" Canvas.Left="276"  Canvas.Top="220" RotateTransformValue="90"  IsFlowing="{Binding LoadLockPumpValveIsOpen,Mode=TwoWay}"/>        <ctrls:Pump Canvas.Top="360"  Canvas.Left="254" Width="35" Height="35" IsOpen="{Binding PumpIsOpen,Mode=TwoWay}">            <ctrls:Pump.ContextMenu>                <ContextMenu>                    <!--<RadioButton Content="Open" Command="{Binding OpenPumpCommand}" IsChecked="{Binding PumpIsOpen}"/>                    <RadioButton Content="Close" Command="{Binding ClosePumpCommand}"   IsChecked="{Binding PumpIsOpen,Converter={StaticResource boolToBool}}"/>-->                    <MenuItem Header="ON"  Command="{Binding OpenPumpCommand}" IsChecked="{Binding PumpIsOpen,Mode=OneWay}" IsEnabled="{Binding PumpIsOpen,Converter={StaticResource boolToBool},Mode=OneWay}"/>                    <MenuItem Header="OFF" Command="{Binding ClosePumpCommand}" IsChecked="{Binding PumpIsOpen,Converter={StaticResource boolToBool},Mode=OneWay}" IsEnabled="{Binding PumpIsOpen,Mode=OneWay}"/>                </ContextMenu>            </ctrls:Pump.ContextMenu>        </ctrls:Pump>        <TextBlock Canvas.Top="320"  Canvas.Left="300" Text="吹扫计数:" FontSize="15"/>        <TextBlock Canvas.Top="320"  Canvas.Left="380" Text="{Binding PurgeCounter}"  FontSize="15"/>        <!--<ctrls:FlowPipeValve  Height="20" Width="24" Canvas.Left="130" Canvas.Top="110" IsOpen="{Binding VentValveIsOpen,Mode=TwoWay}"/>-->        <customControls:CommonValveControl Status="{Binding LoadLockVentValveIsOpen,Mode=TwoWay}"  ValveOrientation="Horizontal" Height="20" Width="20"  Canvas.Left="130" Canvas.Top="113" IsCanEdit="True" Tag="28" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}"/>        <!--<ctrls:FlowPipeValve x:Name="purgevalve"   Height="20" Width="24" Canvas.Left="285.5"  Canvas.Top="310" RotateTransformValue="90" IsOpen="{Binding PumpValveIsOpen,Mode=TwoWay}"/>-->        <customControls:CommonValveControl Status="{Binding LoadLockPumpValveIsOpen,Mode=TwoWay}"  ValveOrientation="Vertical"  Height="20" Width="20"  Canvas.Left="262"  Canvas.Top="310" IsCanEdit="True" Tag="29" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}"/>        <!--<ctrls:CustomSwitch   Height="20" Value="   Slit Door Open   " Canvas.Left="100" Canvas.Top="300" IsOpen="{Binding LoadLockDoorIsOpen,Mode=TwoWay}">               </ctrls:CustomSwitch>-->        <Ellipse Width="20" Height="20" Fill="{Binding RtDataValues[PMA.IsSlitDoorClosed],Converter={StaticResource boolToColor2}}"  Canvas.Left="70" Canvas.Top="302" Stroke="Silver"  StrokeThickness="2"/>        <Button Height="22" Content="   Slit Door Open   " Canvas.Left="100" Canvas.Top="300" Command="{Binding OpenDoorCommand}" Style="{StaticResource SysBtnStyle}" Foreground="White"/>        <Ellipse Width="20" Height="20" Fill="{Binding RtDataValues[PMA.IsSlitDoorClosed],Converter={StaticResource boolToColor}}" Canvas.Left="70" Canvas.Top="342" Stroke="Silver"  StrokeThickness="2"/>        <Button Height="22" Content="   Slit Door Close  " Canvas.Left="100" Canvas.Top="340" Command="{Binding CloseDoorCommand}" Style="{StaticResource SysBtnStyle}" Foreground="White"/>        <!--<ctrls:CustomSwitch   Height="20"  Value="   Slit Door Close  "  Canvas.Left="100" Canvas.Top="340" IsOpen="{Binding LoadLockDoorIsOpen,Mode=TwoWay,Converter={StaticResource boolToBool}}"/>-->        <Border    BorderBrush="Gray"  BorderThickness="0"  Width="180" Height="6" Canvas.Left="330" Canvas.Top="120">            <Border.Background>                <LinearGradientBrush StartPoint="0.5 0" EndPoint="0.5 1">                    <GradientStop Color="Gray" Offset="0"/>                    <GradientStop Color="White"  Offset="0.5"/>                    <GradientStop Color="Gray" Offset="1"/>                </LinearGradientBrush>            </Border.Background>        </Border>        <Border    BorderBrush="Gray"  BorderThickness="0"  Width="40" Height="6" Canvas.Left="275" Canvas.Top="280">            <Border.Background>                <LinearGradientBrush StartPoint="0.5 0" EndPoint="0.5 1">                    <GradientStop Color="Gray" Offset="0"/>                    <GradientStop Color="White"  Offset="0.5"/>                    <GradientStop Color="Gray" Offset="1"/>                </LinearGradientBrush>            </Border.Background>        </Border>        <ctrls:TextboxWithLabel  Canvas.Left="310" Canvas.Top="254" LabelValue="CM3(mTorr)" TextBoxValue="{Binding RtDataValues[PMA.LoadlockPressure],StringFormat='F2'}" TextBoxColor="#D7E4BD"/>        <ctrls:TextboxWithLabel  Canvas.Left="500" Canvas.Top="94" LabelValue="CM(mTorr)"   TextBoxValue="{Binding RtDataValues[PMA.ForelinePressure],StringFormat='F2'}" TextBoxColor="#D7E4BD"/>        <Border    BorderBrush="Gray"  BorderThickness="0"  Width="40" Height="6" Canvas.Left="400" Canvas.Top="124" >            <Border.RenderTransform>                <RotateTransform Angle="90"/>            </Border.RenderTransform>            <Border.Background>                <LinearGradientBrush StartPoint="0.5 0" EndPoint="0.5 1">                    <GradientStop Color="Gray" Offset="0"/>                    <GradientStop Color="White"  Offset="0.5"/>                    <GradientStop Color="Gray" Offset="1"/>                </LinearGradientBrush>            </Border.Background>        </Border>        <Border    BorderBrush="Gray"  BorderThickness="0"  Width="40" Height="6" Canvas.Left="420" Canvas.Top="80" >            <Border.RenderTransform>                <RotateTransform Angle="90"/>            </Border.RenderTransform>            <Border.Background>                <LinearGradientBrush StartPoint="0.5 0" EndPoint="0.5 1">                    <GradientStop Color="Gray" Offset="0"/>                    <GradientStop Color="White"  Offset="0.5"/>                    <GradientStop Color="Gray" Offset="1"/>                </LinearGradientBrush>            </Border.Background>        </Border>        <Ellipse Width="20" Height="20" Canvas.Left="407" Canvas.Top="60"  Fill="{Binding RtDataValues[PMA.IsATMLoadlock],Converter={StaticResource boolToColor}}" Stroke="Silver" StrokeThickness="2"></Ellipse>        <Ellipse Width="20" Height="20" Canvas.Left="387" Canvas.Top="160" Fill="{Binding RtDataValues[PMA.IsVACLoadlock],Converter={StaticResource boolToColor}}" Stroke="Silver" StrokeThickness="2"></Ellipse>        <TextBlock Text="ATM" Canvas.Left="405" Canvas.Top="40"/>        <TextBlock Text="VAC" Canvas.Left="387" Canvas.Top="185"/>        <TextBlock Text="N2" Canvas.Left="30" Canvas.Top="116"/>        <Image  Canvas.Left="50"  Canvas.Top="110"  Width="40" Height="25"  Source="Pack://application:,,,/Venus_Themes;Component/Resources/Arrow.png" Stretch="Uniform" />        <Image Canvas.Left="200" Canvas.Top="100" Width="141" Height="141" Source="Pack://application:,,,/Venus_Themes;Component/Resources/LoadLock.png">            <!--<Image.ContextMenu>                <ContextMenu Visibility="{Binding WaferIsVisibility,Converter={StaticResource VisibilityToReverse}}">                    <MenuItem Header="新建晶圆" Command="{Binding NewWaferCommand}"/>                </ContextMenu>            </Image.ContextMenu>-->        </Image>        <!--<Ellipse Stroke="White"  Width="80" Height="80" Canvas.Left="231" Canvas.Top="130" Visibility="{Binding WaferInPosSensor.Value,Converter={StaticResource bool2VisibilityConverter}}">                       <Ellipse.Fill>                <LinearGradientBrush StartPoint="0,1" EndPoint="1,1">                    <GradientStop Color="Silver" Offset="0"/>                    <GradientStop Color="White" Offset="0.5"/>                    <GradientStop Color="Gray" Offset="1"/>                </LinearGradientBrush>            </Ellipse.Fill>        </Ellipse>-->        <ctrls:WaferCtrl Canvas.Left="238" Canvas.Top="140"  WaferData="{Binding LLAWafer}"/>        <Grid Canvas.Left="600" Canvas.Top="120" >            <Grid.RowDefinitions>                <RowDefinition Height="30"/>                <RowDefinition Height="Auto"/>                <!--<RowDefinition Height="30"/>                <RowDefinition Height="Auto"/>                <RowDefinition Height="Auto"/>                <RowDefinition Height="30"/>                <RowDefinition Height="Auto"/>-->                <RowDefinition />            </Grid.RowDefinitions>                               <Border  BorderBrush="{DynamicResource Table_BD}" BorderThickness="1,0,1,1" Background="{DynamicResource Table_BG_FirstTitle}" Padding="5,1">                <StackPanel Orientation="Horizontal" HorizontalAlignment="Left" VerticalAlignment="Center">                    <Path Data="M0,0 L5,0 5,5 z" Fill="White" HorizontalAlignment="Left" Grid.Row="1" RenderTransformOrigin="0.5,0.5" Stretch="Fill" Width="5" Height="5">                        <Path.RenderTransform>                            <TransformGroup>                                <ScaleTransform/>                                <SkewTransform/>                                <RotateTransform Angle="45"/>                                <TranslateTransform/>                            </TransformGroup>                        </Path.RenderTransform>                    </Path>                    <TextBlock  Margin="5,0,0,0" Text="LoadLock Manual Operation" FontFamily="Arial" FontSize="14" Foreground="{DynamicResource FG_White}" HorizontalAlignment="Left" VerticalAlignment="Center"/>                </StackPanel>            </Border>            <Border  Grid.Row="1" BorderBrush="{DynamicResource Table_BD}" Background="{DynamicResource Table_BG_Content}" BorderThickness="1,0,1,1" Padding="5,1">                <StackPanel Margin="10,10,10,0" Orientation="Horizontal" HorizontalAlignment="Center">                    <StackPanel Margin="10,0,10,0"  Orientation="Vertical">                        <!--<Button Content="初始化" Width="80" Height="25" Margin="0 0 0 10" IsEnabled="{Binding Path=IsManualMode}" Command="{Binding LLInitCommnad}">                        </Button>-->                        <!--放片-->                        <Button Content="抽气" Width="80" Height="25" Margin="0 0 0 10" IsEnabled="{Binding Path=IsManualMode}" Command="{Binding PumpCommand}">                        </Button>                        <!--检测漏率-->                        <Button Content="充气" Width="80" Height="25" Margin="0 0 0 10" IsEnabled="{Binding Path=IsManualMode}" Command="{Binding VentCommand}">                        </Button>                    </StackPanel>                    <StackPanel Margin="10,0,10,0"  Orientation="Vertical">                        <!--充气-->                        <Button Content="循环吹扫" Width="80" Height="25" Margin="0 0 0 10" VerticalAlignment="Top" IsEnabled="{Binding Path=IsManualMode}" Command="{Binding PurgeCommand}">                        </Button>                    </StackPanel>                    <StackPanel Margin="10,0,10,0"  Orientation="Vertical">                        <!--充气-->                        <Button Content="放片" Width="80" Height="25" Margin="0 0 0 10"   Command="{Binding PlaceWaferCommand}"/>                        <!--取片-->                        <Button Content="取片" Width="80" Height="25" Margin="0 0 0 10"   Command="{Binding MoveWaferCommand}"/>                    </StackPanel>                </StackPanel>            </Border>        </Grid>    </Canvas></UserControl>
 |