| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207 | <UserControl x:Class="PunkHPX8_Themes.UserControls.RinseUIControl"             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:PunkHPX8_Themes.UserControls"             xmlns:userControls="clr-namespace:PunkHPX8_Themes.UserControls"             xmlns:customControls="clr-namespace:PunkHPX8_Themes.CustomControls"             xmlns:converters="clr-namespace:PunkHPX8_Themes.Converters"             mc:Ignorable="d" x:Name="self"             d:DesignHeight="450" d:DesignWidth="800">    <UserControl.Resources>        <Style x:Key="FillValvaMenuControlStyle" TargetType="MenuItem">            <Style.Triggers>                <DataTrigger Binding="{Binding RinseCommonData.WaferHolderClamp}" Value="False">                    <Setter Property="IsEnabled" Value="False"/>                </DataTrigger>            </Style.Triggers>        </Style>        <Style x:Key="InterLockControlStyle" TargetType="MenuItem" BasedOn="{StaticResource FillValvaMenuControlStyle}">            <Style.Triggers>                <DataTrigger Binding="{Binding InterLock}" Value="True">                    <Setter Property="IsEnabled" Value="True"/>                </DataTrigger>            </Style.Triggers>        </Style>        <converters:BoolToBool x:Key="boolToBool"/>        <ContextMenu x:Key="IsClampValveOpen">            <MenuItem Header="Open" Click="OpenClampValve_Click"/>            <MenuItem Header="Close" Click="CloseClampValve_Click"/>        </ContextMenu>        <ContextMenu x:Key="IsN2ValveOpen">            <MenuItem Header="Open" Click="OpenN2Valve_Click"/>            <MenuItem Header="Close" Click="CloseN2Valve_Click"/>        </ContextMenu>        <ContextMenu x:Key="IsDrainValveOpen">            <MenuItem Header="Open" Click="OpenDrainValve_Click"/>            <MenuItem Header="Close" Click="CloseDrainValve_Click"/>        </ContextMenu>        <ContextMenu x:Key="IsWasteValveOpen">            <MenuItem Header="Wastes" Click="OpenWasteValve_Click"/>            <MenuItem Header="Metals" Click="CloseWasteValve_Click"/>        </ContextMenu>        <ContextMenu x:Key="IsFillValveOpen">            <MenuItem Header="Open" Click="OpenFillValve_Click" Style="{StaticResource InterLockControlStyle}"/>            <MenuItem Header="Close" Click="CloseFillValve_Click"/>        </ContextMenu>        <converters:BoolToVisibility2 x:Key="boolToVisibility2"></converters:BoolToVisibility2>        <converters:BoolToOrientation x:Key="boolToOrientation"></converters:BoolToOrientation>    </UserControl.Resources>    <Grid>        <Canvas Panel.ZIndex="2">            <Rectangle x:Name="GrowingRectangle" Fill="PaleGreen" Height="{Binding ElementName=self,Path=UIWaterLevel}" Width="172" VerticalAlignment="Center"   Canvas.Left="376" Canvas.Bottom="195"/>        </Canvas>        <Label Content="Clamp Valve"  FontSize="15" FontWeight="Bold" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" VerticalAlignment="Bottom" HorizontalAlignment="Left" Margin="215,0,0,414"/>        <Label Content="Weir"  FontSize="15" FontWeight="Bold" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" VerticalAlignment="Bottom" HorizontalAlignment="Left" Margin="551,0,0,363"/>        <Label Content="N2 Valve"  FontSize="15" FontWeight="Bold" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" VerticalAlignment="Bottom" HorizontalAlignment="Left" Margin="242,0,0,194"/>        <Label Content="N2"  FontSize="15" FontWeight="Bold" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" VerticalAlignment="Bottom" HorizontalAlignment="Left" Margin="181,0,0,176"/>        <Label Content="Fill Valve"  FontSize="15" FontWeight="Bold" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" VerticalAlignment="Bottom" HorizontalAlignment="Left" Margin="241,0,0,138"/>        <Label Content="DI Water"  FontSize="15" FontWeight="Bold" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" VerticalAlignment="Bottom" HorizontalAlignment="Left" Margin="71,0,0,123"/>        <Label Content="Drain Valve"  FontSize="15" FontWeight="Bold" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" VerticalAlignment="Bottom" HorizontalAlignment="Left" Margin="339,0,0,101"/>        <Label Content="Slow Drain"  FontSize="15" FontWeight="Bold" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" VerticalAlignment="Bottom" HorizontalAlignment="Left" Margin="528,0,0,118"/>        <Label Content="Waste Drain"  FontSize="15" FontWeight="Bold" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" VerticalAlignment="Bottom" HorizontalAlignment="Left" Margin="133,0,0,0"/>        <Label Content="Metals Drain"  FontSize="15" FontWeight="Bold" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" VerticalAlignment="Bottom" HorizontalAlignment="Left" Margin="22,0,0,0"/>        <Image Source="pack://application:,,,/PunkHPX8_Themes;component/Themes/Images/parts/rinseBottomPool.png" Height="81"  Width="356"  HorizontalAlignment="Left" VerticalAlignment="Top" Panel.ZIndex="1" Margin="279,332,0,0"/>        <Image Source="pack://application:,,,/PunkHPX8_Themes;component/Themes/Images/parts/rinseMainFrame.png" Height="278" HorizontalAlignment="Left" VerticalAlignment="Top" Panel.ZIndex="1"  Margin="360,21,0,0" Width="205"/>        <!--WaferHolder UI-->        <Polyline Opacity="0.6"  Visibility="{Binding ElementName=self,Path=IsWaferHolder,Converter={StaticResource boolToVisibility2}}" Panel.ZIndex="1" Stroke="Black" Points="8,0 8,25 20,25 20,226 183,226 183,25 198,25 198,0 8,0" StrokeThickness="3" Margin="360,27,152,110">            <Polyline.Fill>                <LinearGradientBrush StartPoint="0,0" EndPoint="1,1">                    <GradientStop Color="Silver" Offset="0.0" />                    <GradientStop Color="White" Offset="0.5" />                    <GradientStop Color="Silver" Offset="1" />                </LinearGradientBrush>            </Polyline.Fill>        </Polyline>        <Ellipse Panel.ZIndex="1"  Opacity="0.6"  Visibility="{Binding ElementName=self,Path=IsWaferHolder,Converter={StaticResource boolToVisibility2}}"  Margin="400,90,280,245">            <Ellipse.Fill>                <LinearGradientBrush EndPoint="0,0" StartPoint="1,1">                    <GradientStop Color="Silver" Offset="0.2" />                    <GradientStop Color="White" Offset="0.5" />                    <GradientStop Color="Silver" Offset="0.7" />                    <GradientStop Color="DarkGray" Offset="0.9"/>                </LinearGradientBrush>            </Ellipse.Fill>        </Ellipse>        <Rectangle x:Name="ErrorRectangle" Fill="Red" Height="212" VerticalAlignment="Bottom" Margin="387,0,264,198" Opacity="0.5" Panel.ZIndex="3"           Visibility="{Binding ElementName=self,Path=IsError,Converter={StaticResource boolToVisibility2}}" />        <userControls:FlowPipe  Height="7" Width="90" Margin="288,36,434,406" Panel.ZIndex="0"/>        <!--<userControls:FlowPipe   Height="7" Width="40"  Margin="229,36,531,406" />-->        <Rectangle  Fill="lime" Height="6" Margin="290,38,432,408" Opacity="0.5"                Visibility="{Binding RinseCommonData.WaferHolderClamp,Converter={StaticResource boolToVisibility2}}"/>        <customControls:CommonValveControl Height="16" Width="16"  HorizontalAlignment="Left" VerticalAlignment="Top"                            ValveOrientation="Horizontal" Status="{Binding RinseCommonData.WaferHolderClamp}"  IsCanEdit="True" Margin="313,32,0,0" Panel.ZIndex="1" ContextMenu="{StaticResource IsClampValveOpen}">        </customControls:CommonValveControl>        <userControls:FlowPipe  Height="7" Width="120" Margin="276,256,404,187" IsFlowing="False"  Panel.ZIndex="1"/>        <userControls:FlowPipe  Height="7" Width="60" Margin="216,256,524,186" IsFlowing="False" />        <customControls:CommonValveControl Height="16" Width="16" HorizontalAlignment="Left" VerticalAlignment="Top"                ValveOrientation="Horizontal" Status="{Binding RinseCommonData.N2Valve}"  IsCanEdit="True" Margin="268,252,0,0" Panel.ZIndex="1"                                      ContextMenu="{StaticResource IsN2ValveOpen}"/>        <Canvas Panel.ZIndex="1" RenderTransformOrigin="0.5,0.5"  Width="150" Height="10" Margin="215,255,535,185" Visibility="{Binding RinseCommonData.N2Valve,Converter={StaticResource boolToVisibility2}}">            <Canvas.RenderTransform>                <TransformGroup>                    <ScaleTransform/>                    <SkewTransform/>                    <RotateTransform Angle="180.275"/>                    <TranslateTransform x:Name="translateTransform" X="0" Y="0" />                </TransformGroup>            </Canvas.RenderTransform>            <Canvas.Triggers>                <EventTrigger RoutedEvent="Loaded">                    <BeginStoryboard>                        <Storyboard AutoReverse="False" RepeatBehavior="Forever">                            <DoubleAnimation                            Storyboard.TargetName="translateTransform"                            Storyboard.TargetProperty="X"                            From="0" To="150" Duration="0:0:1"/>                        </Storyboard>                    </BeginStoryboard>                </EventTrigger>            </Canvas.Triggers>            <Polygon Width="10" Points="0,2.5 5,0 5,5" Fill="Black" StrokeThickness="1"  VerticalAlignment="Top" Canvas.Left="132" Canvas.Top="2.5"/>            <Polygon Points="0,0 10,0 10,2 0,2" Fill="Black" StrokeThickness="1"   VerticalAlignment="Top" Canvas.Left="135" Canvas.Top="4"/>            <Polygon Width="10" Points="0,2.5 5,0 5,5" Fill="Black" StrokeThickness="1"  VerticalAlignment="Top" Canvas.Left="102" Canvas.Top="2.5"/>            <Polygon Points="0,0 10,0 10,2 0,2" Fill="Black" StrokeThickness="1"   VerticalAlignment="Top" Canvas.Left="105" Canvas.Top="4"/>        </Canvas>               <userControls:FlowPipe IsFlowing="true" Height="8"  Width="89"  RotateTransformValue="90" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="524,263,0,0" Panel.ZIndex="1"/>        <userControls:FlowPipe IsFlowing="{Binding RinseCommonData.DrainValve}" Height="8"  Width="89"  RotateTransformValue="90" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="448,262,0,0" Panel.ZIndex="1"/>        <customControls:CommonValveControl Height="16" Width="16" HorizontalAlignment="Left" VerticalAlignment="Top"                ValveOrientation="Horizontal" Status="{Binding RinseCommonData.DrainValve}"  IsCanEdit="True" Margin="436,326,0,0" Panel.ZIndex="1"                                           ContextMenu="{StaticResource IsDrainValveOpen}" RenderTransformOrigin="0.5,0.5">            <customControls:CommonValveControl.RenderTransform>                <TransformGroup>                    <ScaleTransform/>                    <SkewTransform/>                    <RotateTransform Angle="89.754"/>                    <TranslateTransform/>                </TransformGroup>            </customControls:CommonValveControl.RenderTransform>        </customControls:CommonValveControl>        <userControls:FlowPipe  Height="7" Width="170" Margin="272,308,358,134" IsFlowing="{Binding RinseCommonData.FillValve}" IsReverse="False" Panel.ZIndex="1"/>        <userControls:FlowPipe  Height="7" Width="120" Margin="153,308,527,134" IsFlowing="{Binding RinseCommonData.FillValve}" IsReverse="False"/>        <customControls:CommonValveControl Height="16" Width="16" HorizontalAlignment="Left" VerticalAlignment="Top"    ValveOrientation="Horizontal" Status="{Binding RinseCommonData.FillValve}"  IsCanEdit="True" Margin="268,304,0,0" Panel.ZIndex="1"                                           ContextMenu="{StaticResource IsFillValveOpen}"/>        <userControls:FlowPipe  Height="7" Width="105" Margin="181,387,514,56" IsFlowing="True" IsReverse="True"  Panel.ZIndex="1"/>        <userControls:FlowPipe  Height="7" Width="105" Margin="68,387,627,56" IsFlowing="{Binding RinseCommonData.WasteValve,Converter={StaticResource boolToBool}}" IsReverse="True"  Panel.ZIndex="1"/>        <userControls:FlowPipe IsFlowing="{Binding RinseCommonData.WasteValve,Converter={StaticResource boolToBool}}" Height="8"  Width="40" RotateTransformValue="90" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="72,387,0,0" />        <userControls:FlowPipe IsFlowing="{Binding RinseCommonData.WasteValve}" Height="8"  Width="30" RotateTransformValue="90" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="182,396,0,0" Panel.ZIndex="1"/>        <userControls:Fan Width="45" Height="46" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="155,369,0,0" RenderTransformOrigin="0.5,0.5" Panel.ZIndex="0"  ContextMenu="{StaticResource IsWasteValveOpen}">            <userControls:Fan.RenderTransform>                <TransformGroup>                    <ScaleTransform/>                    <SkewTransform/>                    <RotateTransform Angle="-90"/>                    <TranslateTransform/>                </TransformGroup>            </userControls:Fan.RenderTransform>        </userControls:Fan>        <Canvas Width="40" Height="20" Canvas.Left="67" Canvas.Top="224" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="258,264,0,0" RenderTransformOrigin="0.5,0.5" >            <Canvas.RenderTransform>                <TransformGroup>                    <ScaleTransform/>                    <SkewTransform/>                    <RotateTransform Angle="180.651"/>                    <TranslateTransform/>                </TransformGroup>            </Canvas.RenderTransform>        </Canvas>        <Canvas Width="40" Height="20" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="257,319,0,0" RenderTransformOrigin="0.5,0.5" >            <Canvas.RenderTransform>                <TransformGroup>                    <ScaleTransform/>                    <SkewTransform/>                    <RotateTransform Angle="180.651"/>                    <TranslateTransform/>                </TransformGroup>            </Canvas.RenderTransform>        </Canvas>        <Canvas Width="40" Height="20" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="443,316,0,0" RenderTransformOrigin="0.5,0.5" >            <Canvas.RenderTransform>                <TransformGroup>                    <ScaleTransform/>                    <SkewTransform/>                    <RotateTransform Angle="270.035"/>                    <TranslateTransform/>                </TransformGroup>            </Canvas.RenderTransform>                    </Canvas>        <CheckBox Grid.Column="0" Margin="83,32,0,0"  VerticalAlignment="Top" HorizontalAlignment="Left" Content="Bypass Interlocks"  FontSize="10" FontWeight="Bold"                   Checked="CheckBox_Checked" Unchecked="CheckBox_UnChecked"/>        <Button Style="{StaticResource SysBtnStyle}" Height="20" Width="55" HorizontalAlignment="Left" Content="Metals" Click="OpenWasteValve_Click" Margin="93,399,0,31"/>        <Button Style="{StaticResource SysBtnStyle}" Height="20" Width="55" HorizontalAlignment="Left" Content="Wastes" Click="CloseWasteValve_Click" Margin="208,399,0,31"/>    </Grid></UserControl>
 |