KeplerGasLeakCheckView.xaml 58 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809
  1. <UserControl x:Class="Venus_MainPages.Views.KeplerGasLeakCheckView"
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  5. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  6. xmlns:local="clr-namespace:Venus_MainPages.Views"
  7. mc:Ignorable="d"
  8. xmlns:prism="http://prismlibrary.com/"
  9. prism:ViewModelLocator.AutoWireViewModel="True"
  10. xmlns:ctrls="clr-namespace:Venus_Themes.UserControls;assembly=Venus_Themes"
  11. xmlns:unity="clr-namespace:Venus_MainPages.Unity"
  12. xmlns:converters="clr-namespace:Venus_Themes.Converters;assembly=Venus_Themes"
  13. xmlns:converters2="clr-namespace:Venus_MainPages.Converters"
  14. xmlns:customControls="clr-namespace:Venus_Themes.CustomControls;assembly=Venus_Themes"
  15. xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
  16. d:DesignHeight="450" d:DesignWidth="1024">
  17. <i:Interaction.Triggers>
  18. <i:EventTrigger EventName="Loaded">
  19. <i:InvokeCommandAction Command="{Binding LoadedCommand}"/>
  20. </i:EventTrigger>
  21. </i:Interaction.Triggers>
  22. <UserControl.Resources>
  23. <LinearGradientBrush x:Key="buttonBrush" StartPoint="0.5,0" EndPoint="0.5,1">
  24. <GradientStop Color="White" Offset="0.0" />
  25. <GradientStop Color="Gray" Offset="0.1" />
  26. <GradientStop Color="White" Offset="1" />
  27. </LinearGradientBrush>
  28. <converters:IntToIsEnableConverter x:Key="intToIsEnableConverter"/>
  29. <converters:ToBoolMultiValueConverter x:Key="toBoolMultiValueConverter"/>
  30. <converters:ToBoolMultiValueConverter2 x:Key="toBoolMultiValueConverter2"/>
  31. <converters:ToBoolMultiValueConverter3 x:Key="toBoolMultiValueConverter3"/>
  32. <converters:ToBoolMultiValueConverter4 x:Key="toBoolMultiValueConverter4"/>
  33. <converters:ToBoolMultiValueConverter5 x:Key="toBoolMultiValueConverter5"/>
  34. <converters:BoolToColor x:Key="boolToColor"/>
  35. <converters:BoolToColor2 x:Key="boolToColor2"/>
  36. <converters:BoolToColor3 x:Key="boolToColor3"/>
  37. <converters:BoolToColor4 x:Key="boolToColor4"/>
  38. <converters:BoolToColor5 x:Key="boolToColor5"/>
  39. <converters:BoolToBool x:Key="BoolToBool"/>
  40. <converters:IntToBoolConverter x:Key="converters:IntToBoolConverter"/>
  41. <converters:IntToBoolConverter2 x:Key="converters:IntToBoolConverter2"/>
  42. <converters:BoolToVisibility x:Key="BoolToVisibility"/>
  43. <converters2:AllNoneCheckboxConverter x:Key="AllNoneCheckboxConverter"/>
  44. <converters2:BoolToHeightConverter x:Key="BoolToHeightConverter"/>
  45. <converters:BoolToVisibility2 x:Key="BoolToVisibility2"/>
  46. </UserControl.Resources>
  47. <Canvas>
  48. <Canvas Canvas.Top="-50" Canvas.Left="50">
  49. <ctrls:Pipe2 Canvas.Left="490" Canvas.Top="558" HorizontalAlignment="Left" VerticalAlignment="Top" RotateTransformValue="90" />
  50. <!--N2-->
  51. <ctrls:FlowPipe Name="N2Pipe2" Height="8" Width="76" Canvas.Left="255" Canvas.Top="120" IsFlowing="{Binding PVN22ValveIsOpen}">
  52. <!--<ctrls:FlowPipe.IsFlowing>
  53. <MultiBinding Converter="{StaticResource toBoolMultiValueConverter}">
  54. <Binding Path="PVN22ValveIsOpen"/>
  55. <Binding Path="N2ValveIsOpen"/>
  56. </MultiBinding>
  57. </ctrls:FlowPipe.IsFlowing>-->
  58. </ctrls:FlowPipe>
  59. <ctrls:FlowPipe Height="8" Width="154" Canvas.Left="330" Canvas.Top="120" IsFlowing="{Binding N2ValveIsOpen}">
  60. <!--<ctrls:FlowPipe.IsFlowing>
  61. <MultiBinding Converter="{StaticResource toBoolMultiValueConverter}">
  62. <Binding Path="PVN22ValveIsOpen"/>
  63. <Binding Path="N2ValveIsOpen"/>
  64. </MultiBinding>
  65. </ctrls:FlowPipe.IsFlowing>-->
  66. </ctrls:FlowPipe>
  67. <TextBlock Text="N2" Canvas.Left="440" Canvas.Top="95"/>
  68. <customControls:CommonValveControl Status="{Binding N2ValveIsOpen,Mode=TwoWay}" ValveOrientation="Horizontal" Height="20" Width="20" Canvas.Left="436" Canvas.Top="114" IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Tag="10" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}"/>
  69. <ctrls:FlowPipe x:Name="N2Pipe1" Height="8" Width="193" Canvas.Left="64" Canvas.Top="120" IsFlowing="{Binding PVN22ValveIsOpen}">
  70. <!--<ctrls:FlowPipe.IsFlowing>
  71. <MultiBinding Converter="{StaticResource toBoolMultiValueConverter}">
  72. <Binding Path="PVN22ValveIsOpen"/>
  73. <Binding Path="N2ValveIsOpen"/>
  74. </MultiBinding>
  75. </ctrls:FlowPipe.IsFlowing>-->
  76. </ctrls:FlowPipe>
  77. <TextBlock Text="VN22" Canvas.Left="282" Canvas.Top="95"/>
  78. <customControls:CommonValveControl Status="{Binding PVN22ValveIsOpen,Mode=TwoWay}" ValveOrientation="Horizontal" Height="20" Width="20" Canvas.Left="288" Canvas.Top="114" IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Tag="1" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}"/>
  79. <ctrls:FlowPipe Height="8" Width="309" Canvas.Left="176" Canvas.Top="230" IsFlowing="{Binding MFC1ValveIsOpen}"/>
  80. <TextBlock Text="V1" Canvas.Left="438" Canvas.Top="208"/>
  81. <customControls:CommonValveControl Status="{Binding MFC1ValveIsOpen,Mode=TwoWay}" ValveOrientation="Horizontal" Height="20" Width="20" Canvas.Left="436" Canvas.Top="224" IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Tag="11" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}"/>
  82. <ctrls:FlowPipe Height="8" Width="114" Canvas.Left="64" Canvas.Top="230" IsFlowing="{Binding PV11ValveIsOpen}"/>
  83. <ctrls:FlowPipe Height="8" Width="80" Canvas.Left="177" Canvas.Top="266" IsFlowing="{Binding PV12ValveIsOpen}"/>
  84. <!--<ctrls:Pipe2 Canvas.Left="214" Canvas.Top="274" RotateTransformValue="-180"/>-->
  85. <ctrls:FlowPipe Height="8" Width="30" Canvas.Left="178" Canvas.Top="236" RotateTransformValue="90" IsFlowing="{Binding PV12ValveIsOpen}"/>
  86. <ctrls:Pipe2 Canvas.Left="183" Canvas.Top="274" HorizontalAlignment="Left" VerticalAlignment="Top" RotateTransformValue="-180" />
  87. <ctrls:Pipe4 Canvas.Left="241" Canvas.Top="225" HorizontalAlignment="Left" VerticalAlignment="Top"/>
  88. <ctrls:FlowPipe Height="8" Width="55" Canvas.Left="257" Canvas.Top="126" RotateTransformValue="90" IsReverse="True">
  89. <ctrls:FlowPipe.IsFlowing>
  90. <MultiBinding Converter="{StaticResource toBoolMultiValueConverter2}">
  91. <Binding Path="PV12ValveIsOpen"/>
  92. <Binding Path="PV22ValveIsOpen"/>
  93. <Binding Path="PV32ValveIsOpen"/>
  94. <Binding Path="PV42ValveIsOpen"/>
  95. </MultiBinding>
  96. </ctrls:FlowPipe.IsFlowing>
  97. </ctrls:FlowPipe>
  98. <ctrls:FlowPipe Height="8" Width="190" Canvas.Left="64" Canvas.Top="180" IsFlowing="{Binding N2Purge2ValveIsOpen}" IsReverse="True">
  99. </ctrls:FlowPipe>
  100. <customControls:CommonValveControl Status="{Binding N2Purge2ValveIsOpen,Mode=TwoWay}" ValveOrientation="Horizontal" Height="20" Width="20" Canvas.Left="127" Canvas.Top="174" Tag="58" IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}"/>
  101. <TextBlock Text="To Dry Pump" Canvas.Top="155" FontSize="14"/>
  102. <Image Canvas.Left="40" Canvas.Top="197" Width="40" Height="25" Source="Pack://application:,,,/Venus_Themes;Component/Resources/Arrow.png" Stretch="Uniform">
  103. <Image.RenderTransform>
  104. <RotateTransform Angle="180"/>
  105. </Image.RenderTransform>
  106. </Image>
  107. <ctrls:FlowPipe Height="8" Width="46" Canvas.Left="257" Canvas.Top="180" RotateTransformValue="90" IsReverse="True">
  108. <ctrls:FlowPipe.IsFlowing>
  109. <MultiBinding Converter="{StaticResource toBoolMultiValueConverter2}">
  110. <Binding Path="PV12ValveIsOpen"/>
  111. <Binding Path="PV22ValveIsOpen"/>
  112. <Binding Path="PV32ValveIsOpen"/>
  113. <Binding Path="PV42ValveIsOpen"/>
  114. </MultiBinding>
  115. </ctrls:FlowPipe.IsFlowing>
  116. </ctrls:FlowPipe>
  117. <ctrls:FlowPipe Height="8" Width="28" Canvas.Left="257" Canvas.Top="242" RotateTransformValue="90" IsReverse="True">
  118. <ctrls:FlowPipe.IsFlowing>
  119. <MultiBinding Converter="{StaticResource toBoolMultiValueConverter2}">
  120. <Binding Path="PV12ValveIsOpen"/>
  121. <Binding Path="PV22ValveIsOpen"/>
  122. <Binding Path="PV32ValveIsOpen"/>
  123. <Binding Path="PV42ValveIsOpen"/>
  124. </MultiBinding>
  125. </ctrls:FlowPipe.IsFlowing>
  126. </ctrls:FlowPipe>
  127. <!--SF6-->
  128. <ctrls:FlowPipe Height="8" Width="311" Canvas.Left="174" Canvas.Top="286" IsFlowing="{Binding MFC2ValveIsOpen}"/>
  129. <TextBlock Text="V2" Canvas.Left="438" Canvas.Top="264"/>
  130. <customControls:CommonValveControl Status="{Binding MFC2ValveIsOpen,Mode=TwoWay}" ValveOrientation="Horizontal" Height="20" Width="20" Canvas.Left="436" Canvas.Top="280" IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Tag="12" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}"/>
  131. <ctrls:FlowPipe Height="8" Width="112" Canvas.Left="64" Canvas.Top="286" IsFlowing="{Binding PV21ValveIsOpen}"/>
  132. <ctrls:FlowPipe Height="8" Width="80" Canvas.Left="177" Canvas.Top="322" IsFlowing="{Binding PV22ValveIsOpen}"/>
  133. <ctrls:FlowPipe Height="8" Width="32" Canvas.Left="178" Canvas.Top="290" RotateTransformValue="90" IsFlowing="{Binding PV22ValveIsOpen}"/>
  134. <ctrls:Pipe2 Canvas.Left="183" Canvas.Top="330" HorizontalAlignment="Left" VerticalAlignment="Top" RotateTransformValue="-180" />
  135. <ctrls:Pipe4 Canvas.Left="241" Canvas.Top="281" HorizontalAlignment="Left" VerticalAlignment="Top"/>
  136. <ctrls:FlowPipe Height="8" Width="15" Canvas.Left="257" Canvas.Top="270" RotateTransformValue="90" IsReverse="True" >
  137. <ctrls:FlowPipe.IsFlowing>
  138. <MultiBinding Converter="{StaticResource toBoolMultiValueConverter2}">
  139. <Binding Path="PV22ValveIsOpen"/>
  140. <Binding Path="PV32ValveIsOpen"/>
  141. <Binding Path="PV42ValveIsOpen"/>
  142. </MultiBinding>
  143. </ctrls:FlowPipe.IsFlowing>
  144. </ctrls:FlowPipe>
  145. <ctrls:FlowPipe Height="8" Width="30" Canvas.Left="257" Canvas.Top="296" RotateTransformValue="90" IsReverse="True" >
  146. <ctrls:FlowPipe.IsFlowing>
  147. <MultiBinding Converter="{StaticResource toBoolMultiValueConverter2}">
  148. <Binding Path="PV22ValveIsOpen"/>
  149. <Binding Path="PV32ValveIsOpen"/>
  150. <Binding Path="PV42ValveIsOpen"/>
  151. </MultiBinding>
  152. </ctrls:FlowPipe.IsFlowing>
  153. </ctrls:FlowPipe>
  154. <!--Gas3-->
  155. <ctrls:FlowPipe Height="8" Width="311" Canvas.Left="174" Canvas.Top="342" IsFlowing="{Binding MFC3ValveIsOpen}"/>
  156. <TextBlock Text="V3" Canvas.Left="438" Canvas.Top="320"/>
  157. <customControls:CommonValveControl Status="{Binding MFC3ValveIsOpen,Mode=TwoWay}" ValveOrientation="Horizontal" Height="20" Width="20" Canvas.Left="436" Canvas.Top="336" IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Tag="13" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}"/>
  158. <ctrls:FlowPipe Height="8" Width="112" Canvas.Left="64" Canvas.Top="342" IsFlowing="{Binding PV31ValveIsOpen}"/>
  159. <ctrls:FlowPipe Height="8" Width="80" Canvas.Left="177" Canvas.Top="378" IsFlowing="{Binding PV32ValveIsOpen}"/>
  160. <ctrls:FlowPipe Height="8" Width="30" Canvas.Left="178" Canvas.Top="348" RotateTransformValue="90" IsFlowing="{Binding PV32ValveIsOpen}"/>
  161. <ctrls:Pipe2 Canvas.Left="183" Canvas.Top="386" HorizontalAlignment="Left" VerticalAlignment="Top" RotateTransformValue="-180" />
  162. <ctrls:Pipe4 Canvas.Left="241" Canvas.Top="337" HorizontalAlignment="Left" VerticalAlignment="Top"/>
  163. <ctrls:FlowPipe Height="8" Width="17" Canvas.Left="257" Canvas.Top="324" RotateTransformValue="90" IsReverse="True" >
  164. <ctrls:FlowPipe.IsFlowing>
  165. <MultiBinding Converter="{StaticResource toBoolMultiValueConverter2}">
  166. <Binding Path="PV32ValveIsOpen"/>
  167. <Binding Path="PV42ValveIsOpen"/>
  168. </MultiBinding>
  169. </ctrls:FlowPipe.IsFlowing>
  170. </ctrls:FlowPipe>
  171. <ctrls:FlowPipe Height="8" Width="28" Canvas.Left="257" Canvas.Top="354" RotateTransformValue="90" IsReverse="True" >
  172. <ctrls:FlowPipe.IsFlowing>
  173. <MultiBinding Converter="{StaticResource toBoolMultiValueConverter2}">
  174. <Binding Path="PV32ValveIsOpen"/>
  175. <Binding Path="PV42ValveIsOpen"/>
  176. </MultiBinding>
  177. </ctrls:FlowPipe.IsFlowing>
  178. </ctrls:FlowPipe>
  179. <!--Gas4-->
  180. <ctrls:FlowPipe Height="8" Width="112" Canvas.Left="64" Canvas.Top="396" IsFlowing="{Binding PV41ValveIsOpen}"/>
  181. <ctrls:FlowPipe Height="8" Width="76" Canvas.Left="175" Canvas.Top="428" IsFlowing="{Binding PV42ValveIsOpen}"/>
  182. <ctrls:FlowPipe Height="8" Width="311" Canvas.Left="174" Canvas.Top="396" IsFlowing="{Binding MFC4ValveIsOpen}"/>
  183. <TextBlock Text="V4" Canvas.Left="438" Canvas.Top="374"/>
  184. <customControls:CommonValveControl Status="{Binding MFC4ValveIsOpen,Mode=TwoWay}" ValveOrientation="Horizontal" Height="20" Width="20" Canvas.Left="436" Canvas.Top="390" IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Tag="14" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}"/>
  185. <ctrls:Pipe4 Canvas.Left="241" Canvas.Top="392" HorizontalAlignment="Left" VerticalAlignment="Top"/>
  186. <ctrls:FlowPipe Height="8" Width="15" Canvas.Left="257" Canvas.Top="380" RotateTransformValue="90" IsReverse="True">
  187. <ctrls:FlowPipe.IsFlowing>
  188. <MultiBinding Converter="{StaticResource toBoolMultiValueConverter2}">
  189. <Binding Path="PV42ValveIsOpen"/>
  190. </MultiBinding>
  191. </ctrls:FlowPipe.IsFlowing>
  192. </ctrls:FlowPipe>
  193. <ctrls:FlowPipe Height="8" Width="15" Canvas.Left="257" Canvas.Top="408" RotateTransformValue="90" IsReverse="True">
  194. <ctrls:FlowPipe.IsFlowing>
  195. <MultiBinding Converter="{StaticResource toBoolMultiValueConverter2}">
  196. <Binding Path="PV42ValveIsOpen"/>
  197. </MultiBinding>
  198. </ctrls:FlowPipe.IsFlowing>
  199. </ctrls:FlowPipe>
  200. <ctrls:Pipe2 Canvas.Left="257" Canvas.Top="423" HorizontalAlignment="Left" VerticalAlignment="Top" RotateTransformValue="90" />
  201. <ctrls:FlowPipe Height="8" Width="30" Canvas.Left="178" Canvas.Top="401" RotateTransformValue="90" IsFlowing="{Binding PV42ValveIsOpen}"/>
  202. <ctrls:Pipe2 Canvas.Left="183" Canvas.Top="436" HorizontalAlignment="Left" VerticalAlignment="Top" RotateTransformValue="-180" />
  203. <!--Gas5-->
  204. <ctrls:FlowPipe Height="8" Width="421" Canvas.Left="64" Canvas.Top="452" IsFlowing="{Binding MFC5ValveIsOpen}"/>
  205. <TextBlock Text="V5" Canvas.Left="438" Canvas.Top="430"/>
  206. <customControls:CommonValveControl Status="{Binding MFC5ValveIsOpen,Mode=TwoWay}" ValveOrientation="Horizontal" Height="20" Width="20" Canvas.Left="436" Canvas.Top="446" IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Tag="15" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}"/>
  207. <!--O2-->
  208. <ctrls:FlowPipe Height="8" Width="422" Canvas.Left="65" Canvas.Top="507" IsFlowing="{Binding MFC6ValveIsOpen}"/>
  209. <TextBlock Text="V6" Canvas.Left="438" Canvas.Top="485"/>
  210. <customControls:CommonValveControl Status="{Binding MFC6ValveIsOpen,Mode=TwoWay}" ValveOrientation="Horizontal" Height="20" Width="20" Canvas.Left="436" Canvas.Top="501" IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Tag="16" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}"/>
  211. <!--Gas7-->
  212. <ctrls:FlowPipe Height="8" Width="418" Canvas.Left="65" Canvas.Top="563" IsFlowing="{Binding MFC7ValveIsOpen}"/>
  213. <TextBlock Text="V7" Canvas.Left="438" Canvas.Top="541"/>
  214. <customControls:CommonValveControl Status="{Binding MFC7ValveIsOpen,Mode=TwoWay}" ValveOrientation="Horizontal" Height="20" Width="20" Canvas.Left="436" Canvas.Top="557" IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Tag="17" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}"/>
  215. <!--Gas8-->
  216. <ctrls:FlowPipe Height="8" Width="448" Canvas.Left="68" Canvas.Top="620" IsFlowing="{Binding MFC8ValveIsOpen}"/>
  217. <ctrls:FlowPipe Height="8" Width="460" Canvas.Left="520" Canvas.Top="165" RotateTransformValue="90" IsReverse="True" IsFlowing="{Binding MFC8ValveIsOpen}"/>
  218. <ctrls:FlowPipe Height="8" Width="298" Canvas.Left="515" Canvas.Top="160" IsFlowing="{Binding O2ValveIsOpen}">
  219. </ctrls:FlowPipe>
  220. <ctrls:FlowPipe Height="8" Width="36" Canvas.Left="815" Canvas.Top="125" RotateTransformValue="90" IsReverse="True" IsFlowing="{Binding O2ValveIsOpen}" Panel.ZIndex="100">
  221. </ctrls:FlowPipe>
  222. <ctrls:Pipe2 Canvas.Left="520" Canvas.Top="615" HorizontalAlignment="Left" VerticalAlignment="Top" RotateTransformValue="90" />
  223. <ctrls:Pipe2 Canvas.Left="512" Canvas.Top="173" HorizontalAlignment="Left" VerticalAlignment="Top" RotateTransformValue="-90" />
  224. <ctrls:Pipe2 Canvas.Left="815" Canvas.Top="155" HorizontalAlignment="Left" VerticalAlignment="Top" RotateTransformValue="90" />
  225. <TextBlock Text="V8" Canvas.Left="438" Canvas.Top="598"/>
  226. <customControls:CommonValveControl Status="{Binding MFC8ValveIsOpen,Mode=TwoWay}" ValveOrientation="Horizontal" Height="20" Width="20" Canvas.Left="436" Canvas.Top="614" IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Tag="18" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}"/>
  227. <Ellipse Width="20" Height="20" Canvas.Left="90" Canvas.Top="114" Fill="{Binding MFCN2Data.IsWarning,Converter={StaticResource boolToColor4}}" Stroke="Silver" StrokeThickness="2" ToolTip="Pressure Alarm"></Ellipse>
  228. <!--<Ellipse Width="20" Height="20" Canvas.Left="90" Canvas.Top="174" Fill="{Binding MFCN2Data.IsWarning,Converter={StaticResource boolToColor4}}" Stroke="Silver" StrokeThickness="2" ToolTip="Pressure Alarm"></Ellipse>-->
  229. <Ellipse Width="20" Height="20" Canvas.Left="90" Canvas.Top="224" Fill="{Binding MFC1Data.IsWarning,Converter={StaticResource boolToColor4}}" Stroke="Silver" StrokeThickness="2" ToolTip="Pressure Alarm"></Ellipse>
  230. <Ellipse Width="20" Height="20" Canvas.Left="90" Canvas.Top="280" Fill="{Binding MFC2Data.IsWarning,Converter={StaticResource boolToColor4}}" Stroke="Silver" StrokeThickness="2" ToolTip="Pressure Alarm"></Ellipse>
  231. <Ellipse Width="20" Height="20" Canvas.Left="90" Canvas.Top="336" Fill="{Binding MFC3Data.IsWarning,Converter={StaticResource boolToColor4}}" Stroke="Silver" StrokeThickness="2" ToolTip="Pressure Alarm"></Ellipse>
  232. <Ellipse Width="20" Height="20" Canvas.Left="90" Canvas.Top="390" Fill="{Binding MFC4Data.IsWarning,Converter={StaticResource boolToColor4}}" Stroke="Silver" StrokeThickness="2" ToolTip="Pressure Alarm"></Ellipse>
  233. <Ellipse Width="20" Height="20" Canvas.Left="90" Canvas.Top="446" Fill="{Binding MFC5Data.IsWarning,Converter={StaticResource boolToColor4}}" Stroke="Silver" StrokeThickness="2" ToolTip="Pressure Alarm"></Ellipse>
  234. <Ellipse Width="20" Height="20" Canvas.Left="90" Canvas.Top="501" Fill="{Binding MFC6Data.IsWarning,Converter={StaticResource boolToColor4}}" Stroke="Silver" StrokeThickness="2" ToolTip="Pressure Alarm"></Ellipse>
  235. <Ellipse Width="20" Height="20" Canvas.Left="90" Canvas.Top="557" Fill="{Binding MFC7Data.IsWarning,Converter={StaticResource boolToColor4}}" Stroke="Silver" StrokeThickness="2" ToolTip="Pressure Alarm"></Ellipse>
  236. <Ellipse Width="20" Height="20" Canvas.Left="90" Canvas.Top="614" Fill="{Binding MFC8Data.IsWarning,Converter={StaticResource boolToColor4}}" Stroke="Silver" StrokeThickness="2" ToolTip="Pressure Alarm"></Ellipse>
  237. <!--与chamber上方连接的管道-->
  238. <ctrls:FlowPipe Height="8" Width="180" Canvas.Left="482" Canvas.Top="120">
  239. <ctrls:FlowPipe.IsFlowing>
  240. <MultiBinding Converter="{StaticResource toBoolMultiValueConverter5}">
  241. <Binding Path="GasFinalValveIsOpen"/>
  242. <Binding Path="PurgeValveIsOpen"/>
  243. <Binding Path="N2ValveIsOpen"/>
  244. <Binding Path="PV11ValveIsOpen"/>
  245. <Binding Path="PV21ValveIsOpen"/>
  246. <Binding Path="PV31ValveIsOpen"/>
  247. <Binding Path="PV41ValveIsOpen"/>
  248. <Binding Path="MFC5ValveIsOpen"/>
  249. <Binding Path="MFC6ValveIsOpen"/>
  250. <Binding Path="MFC7ValveIsOpen"/>
  251. </MultiBinding>
  252. </ctrls:FlowPipe.IsFlowing>
  253. </ctrls:FlowPipe>
  254. <ctrls:FlowPipe Height="8" Width="154" Canvas.Left="660" Canvas.Top="120">
  255. <ctrls:FlowPipe.IsFlowing>
  256. <MultiBinding Converter="{StaticResource toBoolMultiValueConverter4}">
  257. <Binding Path="GasFinalValveIsOpen"/>
  258. <Binding Path="N2ValveIsOpen"/>
  259. <Binding Path="PV11ValveIsOpen"/>
  260. <Binding Path="PV21ValveIsOpen"/>
  261. <Binding Path="PV31ValveIsOpen"/>
  262. <Binding Path="PV41ValveIsOpen"/>
  263. <Binding Path="MFC5ValveIsOpen"/>
  264. <Binding Path="MFC6ValveIsOpen"/>
  265. <Binding Path="MFC7ValveIsOpen"/>
  266. </MultiBinding>
  267. </ctrls:FlowPipe.IsFlowing>
  268. </ctrls:FlowPipe>
  269. <ctrls:FlowPipe Height="8" Width="100" Canvas.Left="812" Canvas.Top="120">
  270. <ctrls:FlowPipe.IsFlowing>
  271. <MultiBinding Converter="{StaticResource toBoolMultiValueConverter2}">
  272. <Binding Path="GasFinalValveIsOpen"/>
  273. <Binding Path="PurgeValveIsOpen"/>
  274. <Binding Path="N2ValveIsOpen"/>
  275. <Binding Path="PV11ValveIsOpen"/>
  276. <Binding Path="PV21ValveIsOpen"/>
  277. <Binding Path="PV31ValveIsOpen"/>
  278. <Binding Path="PV41ValveIsOpen"/>
  279. <Binding Path="MFC5ValveIsOpen"/>
  280. <Binding Path="MFC6ValveIsOpen"/>
  281. <Binding Path="MFC7ValveIsOpen"/>
  282. <Binding Path="MFC8ValveIsOpen"/>
  283. </MultiBinding>
  284. </ctrls:FlowPipe.IsFlowing>
  285. </ctrls:FlowPipe>
  286. <ctrls:FlowPipe Height="8" Width="474" Canvas.Left="332" Canvas.Top="80" IsFlowing="{Binding PurgeValveIsOpen}">
  287. <!--<ctrls:FlowPipe.IsFlowing>
  288. <MultiBinding Converter="{StaticResource toBoolMultiValueConverter4}">
  289. <Binding Path="PurgeValveIsOpen"/>
  290. -->
  291. <!--<Binding Path="N2ValveIsOpen"/>-->
  292. <!--
  293. <Binding Path="PV11ValveIsOpen"/>
  294. <Binding Path="PV21ValveIsOpen"/>
  295. <Binding Path="PV31ValveIsOpen"/>
  296. <Binding Path="PV41ValveIsOpen"/>
  297. <Binding Path="MFC5ValveIsOpen"/>
  298. <Binding Path="MFC6ValveIsOpen"/>
  299. </MultiBinding>
  300. </ctrls:FlowPipe.IsFlowing>-->
  301. </ctrls:FlowPipe>
  302. <ctrls:FlowPipe Height="8" Width="36" Canvas.Left="815" Canvas.Top="85" RotateTransformValue="90" IsReverse="False" IsFlowing="{Binding PurgeValveIsOpen}">
  303. <!--<ctrls:FlowPipe.IsFlowing>
  304. <MultiBinding Converter="{StaticResource toBoolMultiValueConverter4}">
  305. <Binding Path="PurgeValveIsOpen"/>
  306. -->
  307. <!--<Binding Path="N2ValveIsOpen"/>-->
  308. <!--
  309. <Binding Path="PV11ValveIsOpen"/>
  310. <Binding Path="PV21ValveIsOpen"/>
  311. <Binding Path="PV31ValveIsOpen"/>
  312. <Binding Path="PV41ValveIsOpen"/>
  313. <Binding Path="MFC5ValveIsOpen"/>
  314. <Binding Path="MFC6ValveIsOpen"/>
  315. </MultiBinding>
  316. </ctrls:FlowPipe.IsFlowing>-->
  317. </ctrls:FlowPipe>
  318. <ctrls:FlowPipe Height="8" Width="34" Canvas.Left="335" Canvas.Top="88" RotateTransformValue="90" IsReverse="True" IsFlowing="{Binding PurgeValveIsOpen}">
  319. <!--<ctrls:FlowPipe.IsFlowing>
  320. <MultiBinding Converter="{StaticResource toBoolMultiValueConverter4}">
  321. <Binding Path="PurgeValveIsOpen"/>
  322. -->
  323. <!--<Binding Path="N2ValveIsOpen"/>-->
  324. <!--
  325. <Binding Path="PV11ValveIsOpen"/>
  326. <Binding Path="PV21ValveIsOpen"/>
  327. <Binding Path="PV31ValveIsOpen"/>
  328. <Binding Path="PV41ValveIsOpen"/>
  329. <Binding Path="MFC5ValveIsOpen"/>
  330. <Binding Path="MFC6ValveIsOpen"/>
  331. </MultiBinding>
  332. </ctrls:FlowPipe.IsFlowing>-->
  333. </ctrls:FlowPipe>
  334. <ctrls:Pipe2 Canvas.Left="802" Canvas.Top="80" HorizontalAlignment="Left" VerticalAlignment="Top" />
  335. <ctrls:Pipe2 Canvas.Left="327" Canvas.Top="93" HorizontalAlignment="Left" VerticalAlignment="Top" RotateTransformValue="-90" />
  336. <customControls:CommonValveControl Status="{Binding PurgeValveIsOpen,Mode=TwoWay}" ValveOrientation="Horizontal" Height="20" Width="20" Canvas.Left="728" Canvas.Top="74" IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Tag="54" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}"/>
  337. <TextBlock Text="Purge V8" Canvas.Left="710" Canvas.Top="52" FontSize="15"/>
  338. <TextBlock Text="Gas Final V1" Canvas.Left="700" Canvas.Top="95" FontSize="15"/>
  339. <customControls:CommonValveControl Status="{Binding GasFinalValveIsOpen,Mode=TwoWay}" ValveOrientation="Horizontal" Height="20" Width="20" Canvas.Left="728" Canvas.Top="114" IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Tag="21" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}"/>
  340. <TextBlock Text="O2 Valve V5" Canvas.Left="690" Canvas.Top="175" FontSize="15"/>
  341. <customControls:CommonValveControl Status="{Binding O2ValveIsOpen,Mode=TwoWay}" ValveOrientation="Horizontal" Height="20" Width="20" Canvas.Left="728" Canvas.Top="154" IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Tag="56" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}"/>
  342. <ctrls:FlowPipe Name="l8" Height="8" Width="56" Canvas.Left="490" Canvas.Top="126" RotateTransformValue="90" IsReverse="True">
  343. <ctrls:FlowPipe.IsFlowing>
  344. <MultiBinding Converter="{StaticResource toBoolMultiValueConverter2}">
  345. <Binding Path="MFC1ValveIsOpen"/>
  346. <Binding Path="MFC2ValveIsOpen"/>
  347. <Binding Path="MFC3ValveIsOpen"/>
  348. <Binding Path="MFC4ValveIsOpen"/>
  349. <Binding Path="MFC5ValveIsOpen"/>
  350. <Binding Path="MFC6ValveIsOpen"/>
  351. <Binding Path="MFC7ValveIsOpen"/>
  352. </MultiBinding>
  353. </ctrls:FlowPipe.IsFlowing>
  354. </ctrls:FlowPipe>
  355. <ctrls:FlowPipe Height="8" Width="56" Canvas.Left="490" Canvas.Top="180" RotateTransformValue="90" IsReverse="True">
  356. <ctrls:FlowPipe.IsFlowing>
  357. <MultiBinding Converter="{StaticResource toBoolMultiValueConverter2}">
  358. <Binding Path="MFC1ValveIsOpen"/>
  359. <Binding Path="MFC2ValveIsOpen"/>
  360. <Binding Path="MFC3ValveIsOpen"/>
  361. <Binding Path="MFC4ValveIsOpen"/>
  362. <Binding Path="MFC5ValveIsOpen"/>
  363. <Binding Path="MFC6ValveIsOpen"/>
  364. <Binding Path="MFC7ValveIsOpen"/>
  365. </MultiBinding>
  366. </ctrls:FlowPipe.IsFlowing>
  367. </ctrls:FlowPipe>
  368. <ctrls:FlowPipe Height="8" Width="58" Canvas.Left="490" Canvas.Top="234" RotateTransformValue="90" IsReverse="True">
  369. <ctrls:FlowPipe.IsFlowing>
  370. <MultiBinding Converter="{StaticResource toBoolMultiValueConverter2}">
  371. <Binding Path="MFC2ValveIsOpen"/>
  372. <Binding Path="MFC3ValveIsOpen"/>
  373. <Binding Path="MFC4ValveIsOpen"/>
  374. <Binding Path="MFC5ValveIsOpen"/>
  375. <Binding Path="MFC6ValveIsOpen"/>
  376. <Binding Path="MFC7ValveIsOpen"/>
  377. </MultiBinding>
  378. </ctrls:FlowPipe.IsFlowing>
  379. </ctrls:FlowPipe>
  380. <ctrls:FlowPipe Height="8" Width="56" Canvas.Left="490" Canvas.Top="290" RotateTransformValue="90" IsReverse="True">
  381. <ctrls:FlowPipe.IsFlowing>
  382. <MultiBinding Converter="{StaticResource toBoolMultiValueConverter2}">
  383. <Binding Path="MFC3ValveIsOpen"/>
  384. <Binding Path="MFC4ValveIsOpen"/>
  385. <Binding Path="MFC5ValveIsOpen"/>
  386. <Binding Path="MFC6ValveIsOpen"/>
  387. <Binding Path="MFC7ValveIsOpen"/>
  388. </MultiBinding>
  389. </ctrls:FlowPipe.IsFlowing>
  390. </ctrls:FlowPipe>
  391. <ctrls:FlowPipe Height="8" Width="58" Canvas.Left="490" Canvas.Top="344" RotateTransformValue="90" IsReverse="True">
  392. <ctrls:FlowPipe.IsFlowing>
  393. <MultiBinding Converter="{StaticResource toBoolMultiValueConverter2}">
  394. <Binding Path="MFC4ValveIsOpen"/>
  395. <Binding Path="MFC5ValveIsOpen"/>
  396. <Binding Path="MFC6ValveIsOpen"/>
  397. <Binding Path="MFC7ValveIsOpen"/>
  398. </MultiBinding>
  399. </ctrls:FlowPipe.IsFlowing>
  400. </ctrls:FlowPipe>
  401. <ctrls:FlowPipe Height="8" Width="58" Canvas.Left="490" Canvas.Top="400" RotateTransformValue="90" IsReverse="True">
  402. <ctrls:FlowPipe.IsFlowing>
  403. <MultiBinding Converter="{StaticResource toBoolMultiValueConverter2}">
  404. <Binding Path="MFC5ValveIsOpen"/>
  405. <Binding Path="MFC6ValveIsOpen"/>
  406. <Binding Path="MFC7ValveIsOpen"/>
  407. </MultiBinding>
  408. </ctrls:FlowPipe.IsFlowing>
  409. </ctrls:FlowPipe>
  410. <ctrls:FlowPipe Height="8" Width="54" Canvas.Left="490" Canvas.Top="458" RotateTransformValue="90" IsReverse="True">
  411. <ctrls:FlowPipe.IsFlowing>
  412. <MultiBinding Converter="{StaticResource toBoolMultiValueConverter2}">
  413. <Binding Path="MFC6ValveIsOpen"/>
  414. <Binding Path="MFC7ValveIsOpen"/>
  415. </MultiBinding>
  416. </ctrls:FlowPipe.IsFlowing>
  417. </ctrls:FlowPipe>
  418. <ctrls:FlowPipe Height="8" Width="48" Canvas.Left="490" Canvas.Top="512" RotateTransformValue="90" IsReverse="True" IsFlowing="{Binding MFC7ValveIsOpen}">
  419. </ctrls:FlowPipe>
  420. <!--<ctrls:FlowPipe Height="8" Width="48" Canvas.Left="490" Canvas.Top="568" RotateTransformValue="90" IsReverse="True">
  421. <ctrls:FlowPipe.IsFlowing>
  422. <MultiBinding Converter="{StaticResource toBoolMultiValueConverter2}">
  423. <Binding Path="MFC8ValveIsOpen"/>
  424. </MultiBinding>
  425. </ctrls:FlowPipe.IsFlowing>
  426. </ctrls:FlowPipe>-->
  427. <!--阀-->
  428. <TextBlock Text="V41" Canvas.Left="128" Canvas.Top="374"/>
  429. <customControls:CommonValveControl Status="{Binding PV41ValveIsOpen,Mode=TwoWay}" ValveOrientation="Horizontal" Height="20" Width="20" Canvas.Left="127" Canvas.Top="390" IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Tag="8" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}"/>
  430. <TextBlock Text="V31" Canvas.Left="128" Canvas.Top="320"/>
  431. <customControls:CommonValveControl Status="{Binding PV31ValveIsOpen,Mode=TwoWay}" ValveOrientation="Horizontal" Height="20" Width="20" Canvas.Left="127" Canvas.Top="336" Tag="6" IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}"/>
  432. <TextBlock Text="V21" Canvas.Left="128" Canvas.Top="266"/>
  433. <customControls:CommonValveControl Status="{Binding PV21ValveIsOpen,Mode=TwoWay}" ValveOrientation="Horizontal" Height="20" Width="20" Canvas.Left="127" Canvas.Top="280" Tag="4" IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}"/>
  434. <TextBlock Text="V11" Canvas.Left="128" Canvas.Top="208"/>
  435. <customControls:CommonValveControl Status="{Binding PV11ValveIsOpen,Mode=TwoWay}" ValveOrientation="Horizontal" Height="20" Width="20" Canvas.Left="127" Canvas.Top="224" Tag="2" IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}"/>
  436. <TextBlock Text="V12" Canvas.Left="200" Canvas.Top="243"/>
  437. <customControls:CommonValveControl Status="{Binding PV12ValveIsOpen,Mode=TwoWay}" ValveOrientation="Horizontal" Height="20" Width="20" Canvas.Left="200" Canvas.Top="259" IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Tag="3" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}"/>
  438. <TextBlock Text="V22" Canvas.Left="200" Canvas.Top="300"/>
  439. <customControls:CommonValveControl Status="{Binding PV22ValveIsOpen,Mode=TwoWay}" ValveOrientation="Horizontal" Height="20" Width="20" Canvas.Left="200" Canvas.Top="315" IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Tag="5" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}"/>
  440. <TextBlock Text="V32" Canvas.Left="200" Canvas.Top="355"/>
  441. <customControls:CommonValveControl Status="{Binding PV32ValveIsOpen,Mode=TwoWay}" ValveOrientation="Horizontal" Height="20" Width="20" Canvas.Left="200" Canvas.Top="371" IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Tag="7" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}"/>
  442. <TextBlock Text="V42" Canvas.Left="200" Canvas.Top="405"/>
  443. <customControls:CommonValveControl Status="{Binding PV42ValveIsOpen,Mode=TwoWay}" ValveOrientation="Horizontal" Height="20" Width="20" Canvas.Left="200" Canvas.Top="421" IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Tag="9" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}"/>
  444. <TextBlock Text="VN21" Canvas.Left="200" Canvas.Top="152"/>
  445. <customControls:CommonValveControl Status="{Binding PVN21ValveIsOpen,Mode=TwoWay}" ValveOrientation="Vertical" Height="20" Width="20" Canvas.Left="243" Canvas.Top="148" IsCanEdit="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}" Tag="0" Command="{Binding ControlValveCommand}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}"/>
  446. <!--左侧管道标签-->
  447. <ctrls:TextboxWithLabel TextBoxValue="{Binding MFC1SetPoint,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" IsReadOnly="False" Canvas.Top="205" Canvas.Left="275" LabelValue="MFC1" ToolTip="{Binding MFC1Data.SetPoint,StringFormat='F1'}" TextBoxColor="White" MaxValue="{Binding MFC1Data.Scale}"/>
  448. <!--<TextBox Canvas.Top="205" Canvas.Left="250" Width="100" Text="{Binding MfcGas1Setpoint,Mode=TwoWay}"/>-->
  449. <ctrls:TextboxWithLabel Canvas.Top="205" Canvas.Left="345" LabelValue="Flow" TextBoxValue="{Binding MFC1Data.FeedBack,StringFormat='F1'}" TextBoxColor="#E6ECF5"/>
  450. <ctrls:TextboxWithLabel TextBoxValue="{Binding MFC2SetPoint,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" IsReadOnly="False" Canvas.Top="260" Canvas.Left="275" LabelValue="MFC2" ToolTip="{Binding MFC2Data.SetPoint,StringFormat='F1'}" TextBoxColor="White" MaxValue="{Binding MFC2Data.Scale}"/>
  451. <ctrls:TextboxWithLabel Canvas.Top="260" Canvas.Left="345" LabelValue="Flow" TextBoxValue="{Binding MFC2Data.FeedBack,StringFormat='F1'}" TextBoxColor="#E6ECF5"/>
  452. <ctrls:TextboxWithLabel TextBoxValue="{Binding MFC3SetPoint,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" IsReadOnly="False" Canvas.Top="318" Canvas.Left="275" LabelValue="MFC3" ToolTip="{Binding MFC3Data.SetPoint,StringFormat='F1'}" TextBoxColor="White" MaxValue="{Binding MFC3Data.Scale}"/>
  453. <ctrls:TextboxWithLabel Canvas.Top="318" Canvas.Left="345" LabelValue="Flow" TextBoxValue="{Binding MFC3Data.FeedBack,StringFormat='F1'}" TextBoxColor="#E6ECF5"/>
  454. <ctrls:TextboxWithLabel TextBoxValue="{Binding MFC4SetPoint,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" IsReadOnly="False" Canvas.Top="370" Canvas.Left="275" LabelValue="MFC4" ToolTip="{Binding MFC4Data.SetPoint,StringFormat='F1'}" TextBoxColor="White" MaxValue="{Binding MFC4Data.Scale}"/>
  455. <ctrls:TextboxWithLabel Canvas.Top="370" Canvas.Left="345" LabelValue="Flow" TextBoxValue="{Binding MFC4Data.FeedBack,StringFormat='F1'}" TextBoxColor="#E6ECF5"/>
  456. <ctrls:TextboxWithLabel TextBoxValue="{Binding MFC5SetPoint,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" IsReadOnly="False" Canvas.Top="426" Canvas.Left="275" LabelValue="MFC5" ToolTip="{Binding MFC5Data.SetPoint,StringFormat='F1'}" TextBoxColor="White" MaxValue="{Binding MFC5Data.Scale}"/>
  457. <ctrls:TextboxWithLabel Canvas.Top="426" Canvas.Left="345" LabelValue="Flow" TextBoxValue="{Binding MFC5Data.FeedBack,StringFormat='F1'}" TextBoxColor="#E6ECF5"/>
  458. <ctrls:TextboxWithLabel TextBoxValue="{Binding MFC6SetPoint,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" IsReadOnly="False" Canvas.Top="482" Canvas.Left="275" LabelValue="MFC6" ToolTip="{Binding MFC6Data.SetPoint,StringFormat='F1'}" TextBoxColor="White" MaxValue="{Binding MFC6Data.Scale}"/>
  459. <ctrls:TextboxWithLabel Canvas.Top="482" Canvas.Left="345" LabelValue="Flow" TextBoxValue="{Binding MFC6Data.FeedBack,StringFormat='F1'}" TextBoxColor="#E6ECF5"/>
  460. <ctrls:TextboxWithLabel TextBoxValue="{Binding MFC7SetPoint,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" IsReadOnly="False" Canvas.Top="538" Canvas.Left="275" LabelValue="MFC7" ToolTip="{Binding MFC7Data.SetPoint,StringFormat='F1'}" TextBoxColor="White" MaxValue="{Binding MFC7Data.Scale}"/>
  461. <ctrls:TextboxWithLabel Canvas.Top="538" Canvas.Left="345" LabelValue="Flow" TextBoxValue="{Binding MFC7Data.FeedBack,StringFormat='F1'}" TextBoxColor="#E6ECF5"/>
  462. <ctrls:TextboxWithLabel TextBoxValue="{Binding MFC8SetPoint,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" IsReadOnly="False" Canvas.Top="595" Canvas.Left="275" LabelValue="MFC8" ToolTip="{Binding MFC8Data.SetPoint,StringFormat='F1'}" TextBoxColor="White" MaxValue="{Binding MFC8Data.Scale}"/>
  463. <ctrls:TextboxWithLabel Canvas.Top="595" Canvas.Left="345" LabelValue="Flow" TextBoxValue="{Binding MFC8Data.FeedBack,StringFormat='F1'}" TextBoxColor="#E6ECF5"/>
  464. <Ellipse Width="20" Height="20" Fill="{Binding GasIsFlowing,Converter={StaticResource boolToColor}}" Canvas.Left="560" Canvas.Top="208" Stroke="Silver" StrokeThickness="2"/>
  465. <Button Width="100" Content="Gas ON/OFF" Canvas.Left="590" Canvas.Top="210" Command="{Binding GasCommand}" IsEnabled="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}"/>
  466. <TextBlock FontSize="13" Text="Vent N2" Canvas.Left="10" Canvas.Top="117" Foreground="Black" Block.TextAlignment="Right" Width="50"/>
  467. <TextBlock FontSize="13" Canvas.Left="-5" Canvas.Top="227" Block.TextAlignment="Right" MaxWidth="65">
  468. <TextBlock.Text>
  469. <MultiBinding StringFormat="{}({0}:{1})">
  470. <Binding Path="MFC1Data.DisplayName"></Binding>
  471. <Binding Path="MFC1Data.Scale"></Binding>
  472. </MultiBinding>
  473. </TextBlock.Text>
  474. </TextBlock>
  475. <TextBlock FontSize="13" Canvas.Left="-5" Canvas.Top="284" Block.TextAlignment="Right" MaxWidth="65">
  476. <TextBlock.Text>
  477. <MultiBinding StringFormat="{}({0}:{1})">
  478. <Binding Path="MFC2Data.DisplayName"></Binding>
  479. <Binding Path="MFC2Data.Scale"></Binding>
  480. </MultiBinding>
  481. </TextBlock.Text>
  482. </TextBlock>
  483. <TextBlock FontSize="13" Canvas.Left="-5" Canvas.Top="338" Block.TextAlignment="Right" MaxWidth="65">
  484. <TextBlock.Text>
  485. <MultiBinding StringFormat="{}({0}:{1})">
  486. <Binding Path="MFC3Data.DisplayName"></Binding>
  487. <Binding Path="MFC3Data.Scale"></Binding>
  488. </MultiBinding>
  489. </TextBlock.Text>
  490. </TextBlock>
  491. <TextBlock FontSize="13" Canvas.Left="-5" Canvas.Top="392" Block.TextAlignment="Right" MaxWidth="65">
  492. <TextBlock.Text>
  493. <MultiBinding StringFormat="{}({0}:{1})">
  494. <Binding Path="MFC4Data.DisplayName"></Binding>
  495. <Binding Path="MFC4Data.Scale"></Binding>
  496. </MultiBinding>
  497. </TextBlock.Text>
  498. </TextBlock>
  499. <TextBlock FontSize="13" Canvas.Left="-5" Canvas.Top="448" Block.TextAlignment="Right" MaxWidth="65">
  500. <TextBlock.Text>
  501. <MultiBinding StringFormat="{}({0}:{1})">
  502. <Binding Path="MFC5Data.DisplayName"></Binding>
  503. <Binding Path="MFC5Data.Scale"></Binding>
  504. </MultiBinding>
  505. </TextBlock.Text>
  506. </TextBlock>
  507. <TextBlock FontSize="13" Canvas.Left="-5" Canvas.Top="503" Block.TextAlignment="Right" MaxWidth="65">
  508. <TextBlock.Text>
  509. <MultiBinding StringFormat="{}({0}:{1})">
  510. <Binding Path="MFC6Data.DisplayName"></Binding>
  511. <Binding Path="MFC6Data.Scale"></Binding>
  512. </MultiBinding>
  513. </TextBlock.Text>
  514. </TextBlock>
  515. <TextBlock FontSize="13" Canvas.Left="-5" Canvas.Top="562" Block.TextAlignment="Right" MaxWidth="65">
  516. <TextBlock.Text>
  517. <MultiBinding StringFormat="{}({0}:{1})">
  518. <Binding Path="MFC7Data.DisplayName"></Binding>
  519. <Binding Path="MFC7Data.Scale"></Binding>
  520. </MultiBinding>
  521. </TextBlock.Text>
  522. </TextBlock>
  523. <TextBlock FontSize="13" Canvas.Left="-5" Canvas.Top="618" Block.TextAlignment="Right" MaxWidth="65">
  524. <TextBlock.Text>
  525. <MultiBinding StringFormat="{}({0}:{1})">
  526. <Binding Path="MFC8Data.DisplayName"></Binding>
  527. <Binding Path="MFC8Data.Scale"></Binding>
  528. </MultiBinding>
  529. </TextBlock.Text>
  530. </TextBlock>
  531. </Canvas >
  532. <Canvas Canvas.Left="850" Canvas.Top="150">
  533. <Grid Width="380" Height="440" Background="White" unity:GridOptions.ShowBorder="True" unity:GridOptions.LineBrush="#E5E6E7">
  534. <Grid.RowDefinitions>
  535. <RowDefinition Height="40"/>
  536. <RowDefinition/>
  537. <RowDefinition/>
  538. <RowDefinition/>
  539. <RowDefinition/>
  540. <RowDefinition/>
  541. <RowDefinition/>
  542. <RowDefinition/>
  543. <RowDefinition/>
  544. <RowDefinition/>
  545. <RowDefinition/>
  546. <RowDefinition/>
  547. <RowDefinition/>
  548. <RowDefinition/>
  549. <RowDefinition/>
  550. <RowDefinition/>
  551. <RowDefinition/>
  552. <!--<RowDefinition Height="0"/>-->
  553. </Grid.RowDefinitions>
  554. <Grid.ColumnDefinitions>
  555. <ColumnDefinition Width="3*"/>
  556. <ColumnDefinition Width="2*"/>
  557. </Grid.ColumnDefinitions>
  558. <TextBlock Grid.Row="0" Grid.ColumnSpan="2" Text="Leak Check Setting" FontSize="22" Padding="90,5,0,0" Background="#FFFFFF"/>
  559. <TextBlock Grid.Row="1" Text="Pumping Time(s)" FontSize="15" VerticalAlignment="Center" Padding="10" />
  560. <TextBlock Grid.Row="2" Text="Leak Check Time(s)" FontSize="15" VerticalAlignment="Center" Padding="10" />
  561. <TextBlock Grid.Row="3" Text="{Binding PressureType, StringFormat=Leak Rate Limit({0}/min)}" FontSize="15" VerticalAlignment="Center" Padding="10" />
  562. <TextBlock Grid.Row="4" Text="Leak Check Mode" FontSize="15" VerticalAlignment="Center" Padding="10" />
  563. <TextBlock Grid.Row="5" Text="Select All" FontSize="15" VerticalAlignment="Center" Padding="10" />
  564. <TextBlock Grid.Row="6" Text="Vent N2" FontSize="15" VerticalAlignment="Center" Padding="10" />
  565. <TextBlock Grid.Row="7" Text="MfcGas1" FontSize="15" VerticalAlignment="Center" Padding="10" />
  566. <TextBlock Grid.Row="8" Text="MfcGas2" FontSize="15" VerticalAlignment="Center" Padding="10" />
  567. <TextBlock Grid.Row="9" Text="MfcGas3" FontSize="15" VerticalAlignment="Center" Padding="10" />
  568. <TextBlock Grid.Row="10" Text="MfcGas4" FontSize="15" VerticalAlignment="Center" Padding="10" />
  569. <TextBlock Grid.Row="11" Text="MfcGas5" FontSize="15" VerticalAlignment="Center" Padding="10" />
  570. <TextBlock Grid.Row="12" Text="MfcGas6" FontSize="15" VerticalAlignment="Center" Padding="10" />
  571. <TextBlock Grid.Row="13" Text="MfcGas7" FontSize="15" VerticalAlignment="Center" Padding="10" />
  572. <TextBlock Grid.Row="14" Text="MfcGas8" FontSize="15" VerticalAlignment="Center" Padding="10" />
  573. <TextBlock Grid.Row="15" Text="State" FontSize="15" VerticalAlignment="Center" Padding="10" />
  574. <TextBlock Grid.Row="16" Text="Time(s)" FontSize="15" VerticalAlignment="Center" Padding="10" />
  575. <!--<TextBlock Grid.Row="17" Text="当前压力" FontSize="15" VerticalAlignment="Center" Padding="10" />-->
  576. <TextBox Grid.Row="1" Grid.Column="1" BorderThickness="0" VerticalContentAlignment="Center" Text="{Binding VentTime,UpdateSourceTrigger=PropertyChanged}"/>
  577. <TextBox Grid.Row="2" Grid.Column="1" BorderThickness="0" VerticalContentAlignment="Center" Text="{Binding CheckTime,UpdateSourceTrigger=PropertyChanged}"/>
  578. <TextBox Grid.Row="3" Grid.Column="1" BorderThickness="0" VerticalContentAlignment="Center" Text="{Binding LeakRateUpperLimit,UpdateSourceTrigger=PropertyChanged}"/>
  579. <ComboBox Grid.Row="4" Grid.Column="1" BorderBrush="Transparent" Margin="0" ItemsSource="{Binding LeakCheckMode}" SelectedIndex="{Binding LeakCheckModeSelectedIndex}" Style="{StaticResource customeComboBoxStyle}" BorderThickness="0"/>
  580. <CheckBox Grid.Row="5" Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center" IsEnabled="{Binding LeakCheckModeSelectedIndex}">
  581. <CheckBox.IsChecked>
  582. <MultiBinding Converter="{StaticResource AllNoneCheckboxConverter}">
  583. <Binding ElementName="n2CheckBox" Path="IsChecked"/>
  584. <Binding ElementName="gas1CheckBox" Path="IsChecked"/>
  585. <Binding ElementName="gas2CheckBox" Path="IsChecked"/>
  586. <Binding ElementName="gas3CheckBox" Path="IsChecked"/>
  587. <Binding ElementName="gas4CheckBox" Path="IsChecked"/>
  588. <Binding ElementName="gas5CheckBox" Path="IsChecked"/>
  589. <Binding ElementName="gas6CheckBox" Path="IsChecked"/>
  590. <Binding ElementName="gas7CheckBox" Path="IsChecked"/>
  591. <Binding ElementName="gas8CheckBox" Path="IsChecked"/>
  592. </MultiBinding>
  593. </CheckBox.IsChecked>
  594. </CheckBox>
  595. <CheckBox x:Name="n2CheckBox" Grid.Row="6" Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center" IsEnabled="{Binding LeakCheckModeSelectedIndex}" IsChecked="{Binding GasIsCheck[0]}" />
  596. <CheckBox x:Name="gas1CheckBox" Grid.Row="7" Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center" IsEnabled="{Binding LeakCheckModeSelectedIndex}" IsChecked="{Binding GasIsCheck[1]}"/>
  597. <CheckBox x:Name="gas2CheckBox" Grid.Row="8" Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center" IsEnabled="{Binding LeakCheckModeSelectedIndex}" IsChecked="{Binding GasIsCheck[2]}"/>
  598. <CheckBox x:Name="gas3CheckBox" Grid.Row="9" Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center" IsEnabled="{Binding LeakCheckModeSelectedIndex}" IsChecked="{Binding GasIsCheck[3]}"/>
  599. <CheckBox x:Name="gas4CheckBox" Grid.Row="10" Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center" IsEnabled="{Binding LeakCheckModeSelectedIndex}" IsChecked="{Binding GasIsCheck[4]}"/>
  600. <CheckBox x:Name="gas5CheckBox" Grid.Row="11" Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center" IsEnabled="{Binding LeakCheckModeSelectedIndex}" IsChecked="{Binding GasIsCheck[5]}"/>
  601. <CheckBox x:Name="gas6CheckBox" Grid.Row="12" Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center" IsEnabled="{Binding LeakCheckModeSelectedIndex}" IsChecked="{Binding GasIsCheck[6]}"/>
  602. <CheckBox x:Name="gas7CheckBox" Grid.Row="13" Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center" IsEnabled="{Binding LeakCheckModeSelectedIndex}" IsChecked="{Binding GasIsCheck[7]}"/>
  603. <CheckBox x:Name="gas8CheckBox" Grid.Row="14" Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center" IsEnabled="{Binding LeakCheckModeSelectedIndex}" IsChecked="{Binding GasIsCheck[8]}"/>
  604. <TextBlock Grid.Row="15" Grid.Column="1" Text="{Binding CurrentStep}" Padding="2,5,0,0"/>
  605. <TextBlock Grid.Row="16" Grid.Column="1" Text="{Binding StepTime, StringFormat=hh\\:mm\\:ss}" Padding="2,5,0,0"/>
  606. <!--<TextBlock Grid.Row="17" Grid.Column="1"/>-->
  607. </Grid>
  608. <customControls:PathButton Foreground="White" Content="Leak Check" Width="130" Height="30" Canvas.Left="400" Canvas.Top="20" Command="{Binding CheckCommand}" IsEnabled="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}"/>
  609. <customControls:PathButton Foreground="White" Content="Gas Purge" Width="130" Height="30" Canvas.Left="400" Canvas.Top="70" Command="{Binding GasPurgeCommand}" IsEnabled="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}"/>
  610. <customControls:PathButton Foreground="White" Content="Abort" Width="130" Height="30" Canvas.Left="400" Canvas.Top="120" Command="{Binding AbortCommand}" IsEnabled="{Binding IsAutoMode,Converter={StaticResource BoolToBool}}"/>
  611. <!--<TextBlock Canvas.Left="80" Canvas.Top="460" Text="Leak Check Result" FontSize="15" FontWeight="Bold"/>-->
  612. <!--<Button FontSize="15" Foreground="White" FontWeight="Bold" Content="Export" Width="100" Height="30" Canvas.Left="900" Canvas.Top="440" Command="{Binding ExportCommand}"/>
  613. <Button FontSize="15" Foreground="White" FontWeight="Bold" Content="Delete" Width="100" Height="30" Canvas.Left="1020" Canvas.Top="440" />-->
  614. </Canvas>
  615. <DataGrid Canvas.Top="600" Height="220" AutoGenerateColumns="False" BorderThickness="0.1" FontSize="12" MinRowHeight="20"
  616. CanUserAddRows="False" CanUserDeleteRows="False" CanUserReorderColumns="False" CanUserResizeColumns="True" CanUserResizeRows="False" CanUserSortColumns="False"
  617. SelectionMode="Single" SelectionUnit="FullRow" Background="#05000000" HorizontalScrollBarVisibility="Disabled"
  618. ItemsSource="{Binding LeakCheckResultList}" SelectedItem="{Binding CurrentLeakCheckResultItem}" FontFamily="Arial,SimSun" Canvas.Left="50">
  619. <DataGrid.Columns>
  620. <DataGridTextColumn Width="160" Binding="{Binding CheckDate}" CanUserSort="False" CanUserReorder="False" IsReadOnly="True" >
  621. <DataGridTextColumn.HeaderTemplate >
  622. <DataTemplate>
  623. <TextBlock Text="CheckDate" />
  624. </DataTemplate>
  625. </DataGridTextColumn.HeaderTemplate>
  626. </DataGridTextColumn>
  627. <DataGridTextColumn Width="120" Binding="{Binding StartPressure}" CanUserSort="False" CanUserReorder="False" IsReadOnly="True" >
  628. <DataGridTextColumn.HeaderTemplate >
  629. <DataTemplate>
  630. <TextBlock Text="BasePressure" />
  631. </DataTemplate>
  632. </DataGridTextColumn.HeaderTemplate>
  633. </DataGridTextColumn>
  634. <DataGridTextColumn Width="120" Binding="{Binding LeakRate}" CanUserSort="False" CanUserReorder="False" IsReadOnly="True" >
  635. <DataGridTextColumn.HeaderTemplate >
  636. <DataTemplate>
  637. <TextBlock Text="LeakRate" />
  638. </DataTemplate>
  639. </DataGridTextColumn.HeaderTemplate>
  640. </DataGridTextColumn>
  641. <DataGridTextColumn Width="200" Binding="{Binding CheckMode}" CanUserSort="False" CanUserReorder="False" IsReadOnly="True" >
  642. <DataGridTextColumn.HeaderTemplate >
  643. <DataTemplate>
  644. <TextBlock Text="CheckMode" />
  645. </DataTemplate>
  646. </DataGridTextColumn.HeaderTemplate>
  647. </DataGridTextColumn>
  648. <DataGridTextColumn Width="400" Binding="{Binding GasLines}" CanUserSort="False" CanUserReorder="False" IsReadOnly="True" >
  649. <DataGridTextColumn.HeaderTemplate >
  650. <DataTemplate>
  651. <TextBlock Text="Gas Lines" />
  652. </DataTemplate>
  653. </DataGridTextColumn.HeaderTemplate>
  654. </DataGridTextColumn>
  655. <DataGridTextColumn Width="200" Binding="{Binding Result}" CanUserSort="False" CanUserReorder="False" IsReadOnly="True" >
  656. <DataGridTextColumn.HeaderTemplate >
  657. <DataTemplate>
  658. <TextBlock Text="Result" />
  659. </DataTemplate>
  660. </DataGridTextColumn.HeaderTemplate>
  661. </DataGridTextColumn>
  662. </DataGrid.Columns>
  663. </DataGrid>
  664. </Canvas>
  665. </UserControl>