| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176 | <UserControl x:Class="Venus_Themes.UserControls.TMChamber"             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_Themes.UserControls"             xmlns:ctrl="http://OpenSEMI.Ctrlib.com/presentation"             xmlns:converters="clr-namespace:Venus_Themes.Converters"             mc:Ignorable="d"              d:DesignHeight="450" d:DesignWidth="800" Name="tmChamber" Opacity="0.9">    <UserControl.Resources>        <Style TargetType="Rectangle" x:Key="doorAnimation">            <Setter Property="Width" Value="200"/>            <Style.Triggers>                <DataTrigger Binding="{Binding ElementName=tmChamber,Path=DoorIsOpen}" Value="True">                    <DataTrigger.EnterActions>                        <BeginStoryboard>                            <Storyboard>                                <DoubleAnimation  Storyboard.TargetProperty="Width" To="40" Duration="0:0:1"/>                            </Storyboard>                        </BeginStoryboard>                    </DataTrigger.EnterActions>                    <DataTrigger.ExitActions>                        <BeginStoryboard>                            <Storyboard>                                <DoubleAnimation  Storyboard.TargetProperty="Width" To="102" Duration="0:0:1"/>                            </Storyboard>                        </BeginStoryboard>                    </DataTrigger.ExitActions>                </DataTrigger>            </Style.Triggers>        </Style>        <converters:BoolToBool x:Key="BoolToBool"/>        <Storyboard x:Key="WaterStoryboard">            <PointAnimation Storyboard.TargetName="bs_Water" Storyboard.TargetProperty="Point1" From="15,-10" To="15,10" Duration="00:00:1" AutoReverse="True" RepeatBehavior="Forever"></PointAnimation>            <PointAnimation Storyboard.TargetName="bs_Water" Storyboard.TargetProperty="Point2" From="35,10" To="35,-10" Duration="00:00:2.5" AutoReverse="True" RepeatBehavior="Forever"></PointAnimation>        </Storyboard>        <Storyboard x:Key="WaterWidth">            <DoubleAnimation Storyboard.TargetName="rec_Water" Storyboard.TargetProperty="Height" Duration="0:0:0.3">            </DoubleAnimation>        </Storyboard>    </UserControl.Resources>    <UserControl.Triggers>        <EventTrigger RoutedEvent="Loaded">            <BeginStoryboard Storyboard="{StaticResource WaterStoryboard}"></BeginStoryboard>            <BeginStoryboard Storyboard="{StaticResource WaterWidth}"></BeginStoryboard>        </EventTrigger>    </UserControl.Triggers>    <Viewbox Stretch="Fill">        <Viewbox.RenderTransform>            <TransformGroup>                <RotateTransform Angle="{Binding ElementName=tmChamber,Path=RotateTransformValue}"/>            </TransformGroup>        </Viewbox.RenderTransform>        <Border>            <Canvas Width="200" Height="200" Grid.Row="1">                <!--<Border Canvas.Top="-54" Canvas.Left="-9" Height="44" Width="210" Background="Transparent" BorderBrush="Gainsboro" BorderThickness="0,0,3,3" CornerRadius="3" Visibility="{Binding ElementName=tmChamber,Path=IsVenting,Converter={StaticResource bool2VisibilityConverter}}">-->                    <Border Canvas.Top="-54" Canvas.Left="-9" Height="44" Width="210" Background="Transparent" BorderBrush="Gainsboro" BorderThickness="0,0,3,3" CornerRadius="3" Visibility="Hidden">                    <Border Background="Transparent" CornerRadius="1"  BorderBrush="Black" BorderThickness="3,3,0,0">                        <StackPanel Margin="-160,0,0,0" Height="44">                            <StackPanel   Width="49" Margin="25 0 45 10">                                <StackPanel.RenderTransform>                                    <RotateTransform Angle="-90" CenterX="19.5" CenterY="10"></RotateTransform>                                </StackPanel.RenderTransform>                                <!--矩形-->                                <Rectangle x:Name="rec_Water"  Fill="#42a5f5" Height="{Binding ElementName=tmChamber,Path=PercentValue,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="50" Margin="-20,6,0,0"/>                                <!--水波-->                                <Path Fill="#42a5f5" Margin="0,-16,0,0" Height="10" Stretch="Fill">                                    <Path.RenderTransform>                                        <RotateTransform Angle="180" CenterX="19.5" CenterY="10"></RotateTransform>                                    </Path.RenderTransform>                                    <Path.Data>                                        <PathGeometry>                                            <PathFigure StartPoint="0,0">                                                <BezierSegment x:Name="bs_Water" Point1="15,-5" Point2="35,5"  Point3="50,0"></BezierSegment>                                                <PolyLineSegment Points="50,10 0,10"></PolyLineSegment>                                            </PathFigure>                                        </PathGeometry>                                    </Path.Data>                                </Path>                            </StackPanel>                        </StackPanel>                    </Border>                </Border>                <Border  Canvas.Top="-50" Canvas.Left="-60" HorizontalAlignment="Center" Width="320" Visibility="Visible">                    <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center" Visibility="{Binding ElementName=tmChamber,Path=PMVisibility}">                        <TextBlock FontSize="30" Width="Auto" Text="{Binding ElementName=tmChamber,Path=ModuleName}"/>                        <!--<TextBlock FontSize="30" Text="(" HorizontalAlignment="Center"/>                        <TextBlock FontSize="30" Text="{Binding ElementName=tmChamber,Path=PressureValue,StringFormat=F0}" HorizontalAlignment="Center"/>                        <TextBlock FontSize="30" Text="{Binding ElementName=tmChamber,Path=Unit}" HorizontalAlignment="Center"/>                        <TextBlock FontSize="30" Text=")" HorizontalAlignment="Center"/>-->                    </StackPanel>                </Border>                <Polygon Stroke="Black"  StrokeThickness="2" Points="00,200 0,3 3,0 197,0 200,3 200,200" Visibility="{Binding ElementName=tmChamber,Path=PMVisibility}">                    <Polygon.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>                    </Polygon.Fill>                </Polygon>                <Viewbox Stretch="Uniform" Width="200" Height="200" Canvas.Top="-15" Canvas.Left="2" Visibility="{Binding ElementName=tmChamber,Path=PMVisibility}">                    <Canvas UseLayoutRounding="False"  Width="93.693" Height="112.5" HorizontalAlignment="Left" VerticalAlignment="Top">                        <Canvas  Width="72.522" Height="72.521" Canvas.Left="10.473" Canvas.Top="28.781">                            <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">                                <Path.Fill>                                    <RadialGradientBrush Center="0.5,0.5" RadiusX="0.5" RadiusY="0.5" GradientOrigin="0.5,0.5">                                        <RadialGradientBrush.GradientStops>                                            <GradientStop Color="#FFE5E2DF" Offset="0" />                                            <GradientStop Color="#FFFFFFFF" Offset="0" />                                            <GradientStop Color="#FFADAEB0" Offset="0.52" />                                            <GradientStop Color="sc#1, 0.238698155, 0.250727534, 0.259264916" Offset="0.82" />                                            <GradientStop Color="#FF454F52" Offset="1" />                                        </RadialGradientBrush.GradientStops>                                    </RadialGradientBrush>                                </Path.Fill>                            </Path>                            <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" />                        </Canvas>                        <Canvas Name="Group_Center" Tag="#00000000,#FF008000,Original,0,None" Width="5.857" Height="5.855" Canvas.Left="43.919" Canvas.Top="62.113">                            <Path Data="M46.8477,62.1133C48.4637,62.1133 49.7757,63.4243 49.7757,65.0413 49.7757,66.6583 48.4637,67.9683 46.8477,67.9683 45.2307,67.9683 43.9187,66.6583 43.9187,65.0413 43.9187,63.4243 45.2307,62.1133 46.8477,62.1133z" Stretch="Fill" Fill="LightBlue" Stroke="#FF4C4C4C" StrokeThickness="0.25" Width="6.107" Height="6.105" Canvas.Left="-0.125" Canvas.Top="-0.125" />                        </Canvas>                        <Canvas Name="Group_Ring" Tag="#00000000,#FF008000,Original,0,None" Width="56.555" Height="56.556" Canvas.Left="18.57" Canvas.Top="36.762">                            <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" />                            <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" />                        </Canvas>                    </Canvas>                </Viewbox>                <Rectangle Visibility="Hidden" Fill="Silver"  Width="200" VerticalAlignment="Top"    Height="20"    Canvas.Top="200" Canvas.Left="-2"/>                <Rectangle Visibility="Hidden" Cursor="Hand" DataContext="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl,AncestorLevel=1}}" Style="{StaticResource doorAnimation}"  Fill="{StaticResource doorColor2}"   VerticalAlignment="Top"    Height="20" Width="102"   Canvas.Top="200" Canvas.Left="-2" Name="door1">                    <Rectangle.ContextMenu >                        <ContextMenu>                            <MenuItem Header="Open Door"  Click="OpenDoor_Click"    IsChecked="{Binding DoorIsOpen}" IsEnabled="{Binding DoorIsOpen,Converter={StaticResource BoolToBool}}"/>                            <MenuItem Header="Close Door" Click="CloseDoor_Click"    IsChecked="{Binding DoorIsOpen,Converter={StaticResource BoolToBool}}" IsEnabled="{Binding DoorIsOpen}"/>                        </ContextMenu>                    </Rectangle.ContextMenu>                </Rectangle>                <Rectangle Visibility="Hidden"  Cursor="Hand" DataContext="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl,AncestorLevel=1}}" Style="{StaticResource doorAnimation}"  Fill="{StaticResource doorColor2}"   VerticalAlignment="Top"    Height="20"  Width="102"  Canvas.Top="200" Canvas.Left="-2" Name="door2">                    <Rectangle.RenderTransform >                        <RotateTransform CenterX="102" CenterY="10" Angle="180"/>                    </Rectangle.RenderTransform>                    <Rectangle.ContextMenu >                        <ContextMenu>                            <MenuItem Header="Open Door"  Click="OpenDoor_Click"    IsChecked="{Binding DoorIsOpen}" IsEnabled="{Binding DoorIsOpen,Converter={StaticResource BoolToBool}}"/>                            <MenuItem Header="Close Door" Click="CloseDoor_Click"    IsChecked="{Binding DoorIsOpen,Converter={StaticResource BoolToBool}}" IsEnabled="{Binding DoorIsOpen}"/>                        </ContextMenu>                    </Rectangle.ContextMenu>                </Rectangle>                <Viewbox Width="126" Height="126"  Canvas.Left="39" Canvas.Top="38">                    <local:WaferCtrl WaferData="{Binding ElementName=tmChamber, Path=RobotWafer}"/>                </Viewbox>            </Canvas>        </Border>    </Viewbox></UserControl>
 |