Sfoglia il codice sorgente

淇甯冨眬閬尅 - 绉婚櫎鍥哄畾灏哄锛屾敼鐢ㄨ嚜閫傚簲甯冨眬

纾 鏇 1 settimana fa
parent
commit
cdcb2a55f6

+ 45 - 48
src/YZWater.Avalonia/Views/MainWindow.axaml

@@ -2,7 +2,6 @@
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:vm="using:YZWater.Core.ViewModels"
         xmlns:views="using:YZWater.Avalonia.Views"
-        xmlns:controls="using:YZWater.Avalonia.Controls"
         x:Class="YZWater.Avalonia.Views.MainWindow"
         x:DataType="vm:MainViewModel"
         Title="YZ WATER - 姹℃按澶勭悊鐩戞帶绯荤粺"
@@ -15,52 +14,50 @@
         <vm:MainViewModel/>
     </Window.DataContext>
 
-    <controls:AdaptiveContainer DesignWidth="1280" DesignHeight="800"
-                                 Stretch="Uniform" MinScale="0.7" MaxScale="1.5">
-        <DockPanel>
-            <!-- 鈺愨晲鈺 搴曢儴瀵艰埅鏍 鈺愨晲鈺 -->
-            <Border DockPanel.Dock="Bottom" Background="#111820" BorderBrush="#1C2333" BorderThickness="0,1,0,0" Padding="4,0">
-                <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Spacing="0">
-                    <Button Content="PROCESS" Command="{Binding ShowViewACommand}"
-                            FontFamily="Consolas, monospace" FontSize="11" Padding="20,8"
-                            Background="Transparent" Foreground="#00897B" BorderThickness="0"/>
-                    <Border Background="#1C2333" Width="1" Height="20" VerticalAlignment="Center"/>
-                    <Button Content="PARAMS" Command="{Binding ShowViewBCommand}"
-                            FontFamily="Consolas, monospace" FontSize="11" Padding="20,8"
-                            Background="Transparent" Foreground="#9CA3AF" BorderThickness="0"/>
-                    <Border Background="#1C2333" Width="1" Height="20" VerticalAlignment="Center"/>
-                    <Button Content="FLOW" Command="{Binding ShowViewCCommand}"
-                            FontFamily="Consolas, monospace" FontSize="11" Padding="20,8"
-                            Background="Transparent" Foreground="#9CA3AF" BorderThickness="0"/>
-                    <Border Background="#1C2333" Width="1" Height="20" VerticalAlignment="Center"/>
-                    <Button Content="ALARM" Command="{Binding ShowViewDCommand}"
-                            FontFamily="Consolas, monospace" FontSize="11" Padding="20,8"
-                            Background="Transparent" Foreground="#9CA3AF" BorderThickness="0"/>
-                    <Border Background="#1C2333" Width="1" Height="20" VerticalAlignment="Center"/>
-                    <Button Content="ABOUT" Command="{Binding ShowViewECommand}"
-                            FontFamily="Consolas, monospace" FontSize="11" Padding="20,8"
-                            Background="Transparent" Foreground="#9CA3AF" BorderThickness="0"/>
-                </StackPanel>
-            </Border>
+    <!-- 鐩存帴浣跨敤 DockPanel 濉弧绐楀彛锛屼笉浣跨敤 AdaptiveContainer -->
+    <DockPanel>
+        <!-- 搴曢儴瀵艰埅鏍 -->
+        <Border DockPanel.Dock="Bottom" Background="#111820" BorderBrush="#1C2333" BorderThickness="0,1,0,0" Padding="4,0">
+            <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Spacing="0">
+                <Button Content="PROCESS" Command="{Binding ShowViewACommand}"
+                        FontFamily="Consolas, monospace" FontSize="11" Padding="20,8"
+                        Background="Transparent" Foreground="#00897B" BorderThickness="0"/>
+                <Border Background="#1C2333" Width="1" Height="20" VerticalAlignment="Center"/>
+                <Button Content="PARAMS" Command="{Binding ShowViewBCommand}"
+                        FontFamily="Consolas, monospace" FontSize="11" Padding="20,8"
+                        Background="Transparent" Foreground="#9CA3AF" BorderThickness="0"/>
+                <Border Background="#1C2333" Width="1" Height="20" VerticalAlignment="Center"/>
+                <Button Content="FLOW" Command="{Binding ShowViewCCommand}"
+                        FontFamily="Consolas, monospace" FontSize="11" Padding="20,8"
+                        Background="Transparent" Foreground="#9CA3AF" BorderThickness="0"/>
+                <Border Background="#1C2333" Width="1" Height="20" VerticalAlignment="Center"/>
+                <Button Content="ALARM" Command="{Binding ShowViewDCommand}"
+                        FontFamily="Consolas, monospace" FontSize="11" Padding="20,8"
+                        Background="Transparent" Foreground="#9CA3AF" BorderThickness="0"/>
+                <Border Background="#1C2333" Width="1" Height="20" VerticalAlignment="Center"/>
+                <Button Content="ABOUT" Command="{Binding ShowViewECommand}"
+                        FontFamily="Consolas, monospace" FontSize="11" Padding="20,8"
+                        Background="Transparent" Foreground="#9CA3AF" BorderThickness="0"/>
+            </StackPanel>
+        </Border>
 
-            <!-- 鈺愨晲鈺 涓诲唴瀹瑰尯鍩 鈺愨晲鈺 -->
-            <TabControl SelectedIndex="{Binding SelectedTabIndex}" Background="#0A0E14">
-                <TabItem Header="PROCESS" IsVisible="False">
-                    <views:ViewAView/>
-                </TabItem>
-                <TabItem Header="PARAMS" IsVisible="False">
-                    <views:ViewBView/>
-                </TabItem>
-                <TabItem Header="FLOW" IsVisible="False">
-                    <views:ViewCView/>
-                </TabItem>
-                <TabItem Header="ALARM" IsVisible="False">
-                    <views:ViewDView/>
-                </TabItem>
-                <TabItem Header="ABOUT" IsVisible="False">
-                    <views:ViewEView/>
-                </TabItem>
-            </TabControl>
-        </DockPanel>
-    </controls:AdaptiveContainer>
+        <!-- 涓诲唴瀹瑰尯鍩 -->
+        <TabControl SelectedIndex="{Binding SelectedTabIndex}" Background="#0A0E14">
+            <TabItem Header="PROCESS" IsVisible="False">
+                <views:ViewAView/>
+            </TabItem>
+            <TabItem Header="PARAMS" IsVisible="False">
+                <views:ViewBView/>
+            </TabItem>
+            <TabItem Header="FLOW" IsVisible="False">
+                <views:ViewCView/>
+            </TabItem>
+            <TabItem Header="ALARM" IsVisible="False">
+                <views:ViewDView/>
+            </TabItem>
+            <TabItem Header="ABOUT" IsVisible="False">
+                <views:ViewEView/>
+            </TabItem>
+        </TabControl>
+    </DockPanel>
 </Window>

+ 215 - 275
src/YZWater.Avalonia/Views/ViewAView.axaml

@@ -9,14 +9,13 @@
         <vm:ViewAViewModel/>
     </UserControl.DataContext>
 
-    <!-- 宸ヤ笟娣辫壊鑳屾櫙 -->
-    <Border Background="#0A0E14" Width="1280" Height="800">
-        <Grid RowDefinitions="48,*,32" Margin="0">
+    <!-- 涓嶈鍥哄畾瀹介珮锛岀敱 AdaptiveContainer 鎺у埗缂╂斁 -->
+    <Border Background="#0A0E14">
+        <Grid RowDefinitions="48,*,32">
 
             <!-- 鈺愨晲鈺 椤堕儴鏍囬鏍 鈺愨晲鈺 -->
             <Border Grid.Row="0" Background="#111820" BorderBrush="#1C2333" BorderThickness="0,0,0,1">
                 <Grid ColumnDefinitions="Auto,*,Auto,Auto,Auto" Margin="16,0">
-                    <!-- 绯荤粺鏍囬 -->
                     <StackPanel Grid.Column="0" Orientation="Horizontal" Spacing="12" VerticalAlignment="Center">
                         <Border Background="#00897B" Width="4" Height="24" CornerRadius="2"/>
                         <TextBlock Text="YZ WATER" FontSize="16" FontWeight="Bold"
@@ -26,16 +25,12 @@
                                    Foreground="#6B7280" VerticalAlignment="Center"/>
                     </StackPanel>
 
-                    <!-- PLC 杩炴帴鐘舵 LED -->
                     <StackPanel Grid.Column="2" Orientation="Horizontal" Spacing="8" VerticalAlignment="Center" Margin="24,0">
                         <Border Width="10" Height="10" CornerRadius="5" Background="#00897B"/>
-                        <TextBlock Text="PLC" FontFamily="Consolas, monospace" FontSize="11"
-                                   Foreground="#9CA3AF" VerticalAlignment="Center"/>
-                        <TextBlock Text="CONNECTED" FontFamily="Consolas, monospace" FontSize="11"
+                        <TextBlock Text="PLC CONNECTED" FontFamily="Consolas, monospace" FontSize="11"
                                    Foreground="#00897B" VerticalAlignment="Center"/>
                     </StackPanel>
 
-                    <!-- 鎿嶄綔鎸夐挳 -->
                     <StackPanel Grid.Column="3" Orientation="Horizontal" Spacing="4" VerticalAlignment="Center" Margin="16,0">
                         <Button Content="CONNECT" Command="{Binding ConnectPlcCommand}"
                                 FontFamily="Consolas, monospace" FontSize="10" Padding="10,4"
@@ -48,7 +43,6 @@
                                 Background="#1C2333" Foreground="#3B82F6" BorderBrush="#3B82F6"/>
                     </StackPanel>
 
-                    <!-- 鏃堕挓 -->
                     <StackPanel Grid.Column="4" VerticalAlignment="Center" HorizontalAlignment="Right">
                         <TextBlock Text="{Binding CurrentTime, StringFormat='{}{0:HH:mm:ss}'}"
                                    FontFamily="Consolas, monospace" FontSize="18" FontWeight="Bold"
@@ -68,287 +62,264 @@
                         BorderBrush="#1C2333" BorderThickness="1">
                     <Grid RowDefinitions="Auto,*,Auto" Margin="12,8">
 
-                        <!-- 娴佺▼鍥炬爣棰 -->
                         <StackPanel Grid.Row="0" Orientation="Horizontal" Spacing="8" Margin="0,0,0,8">
                             <Border Background="#00897B" Width="3" Height="16" CornerRadius="1"/>
                             <TextBlock Text="PROCESS FLOW" FontFamily="Consolas, monospace"
                                        FontSize="12" FontWeight="Bold" Foreground="#9CA3AF"/>
                         </StackPanel>
 
-                        <!-- 宸ヨ壓娴佺▼ Canvas -->
+                        <!-- 宸ヨ壓娴佺▼鍖哄煙 - 浣跨敤 Grid 鏇夸唬 Canvas 瀹炵幇鑷傚簲 -->
                         <Border Grid.Row="1" Background="#0D1117" CornerRadius="2" Padding="8">
-                            <Canvas Width="900" Height="480">
+                            <Grid RowDefinitions="Auto,Auto,Auto,Auto" ColumnDefinitions="*,*,*,*,Auto">
 
-                                <!-- 鈹鈹鈹 姘寸缁 鈹鈹鈹 -->
-                                <!-- 鍏ュ彛姹 -->
-                                <StackPanel Orientation="Vertical" Canvas.Left="30" Canvas.Top="20">
-                                    <controls:WaterTankControl Width="110" Height="140"
-                                                               WaterLevel="{Binding Tank1Level}" Text="鍏ュ彛姹"
-                                                               WaterColor="#00897B" BorderColor="#1C2333"/>
-                                    <Border Background="#1C2333" Padding="6,3" Margin="0,4,0,0">
-                                        <TextBlock Text="{Binding Tank1Level, StringFormat='LV: {0:F1}%'}"
-                                                   FontFamily="Consolas, monospace" FontSize="11"
-                                                   Foreground="#00897B" HorizontalAlignment="Center"/>
-                                    </Border>
-                                </StackPanel>
-
-                                <!-- 鐢熷寲姹 -->
-                                <StackPanel Orientation="Vertical" Canvas.Left="180" Canvas.Top="20">
-                                    <controls:WaterTankControl Width="110" Height="140"
-                                                               WaterLevel="{Binding Tank2Level}" Text="鐢熷寲姹"
-                                                               WaterColor="#0288D1" BorderColor="#1C2333"/>
-                                    <Border Background="#1C2333" Padding="6,3" Margin="0,4,0,0">
-                                        <TextBlock Text="{Binding Tank2Level, StringFormat='LV: {0:F1}%'}"
-                                                   FontFamily="Consolas, monospace" FontSize="11"
-                                                   Foreground="#0288D1" HorizontalAlignment="Center"/>
-                                    </Border>
-                                </StackPanel>
-
-                                <!-- 娌夋穩姹 -->
-                                <StackPanel Orientation="Vertical" Canvas.Left="330" Canvas.Top="20">
-                                    <controls:WaterTankControl Width="110" Height="140"
-                                                               WaterLevel="{Binding Tank3Level}" Text="娌夋穩姹"
-                                                               WaterColor="#7B1FA2" BorderColor="#1C2333"/>
-                                    <Border Background="#1C2333" Padding="6,3" Margin="0,4,0,0">
-                                        <TextBlock Text="{Binding Tank3Level, StringFormat='LV: {0:F1}%'}"
-                                                   FontFamily="Consolas, monospace" FontSize="11"
-                                                   Foreground="#7B1FA2" HorizontalAlignment="Center"/>
-                                    </Border>
-                                </StackPanel>
-
-                                <!-- 鍑哄彛姹 -->
-                                <StackPanel Orientation="Vertical" Canvas.Left="480" Canvas.Top="20">
-                                    <controls:WaterTankControl Width="110" Height="140"
-                                                               WaterLevel="{Binding Tank4Level}" Text="鍑哄彛姹"
-                                                               WaterColor="#2E7D32" BorderColor="#1C2333"/>
-                                    <Border Background="#1C2333" Padding="6,3" Margin="0,4,0,0">
-                                        <TextBlock Text="{Binding Tank4Level, StringFormat='LV: {0:F1}%'}"
-                                                   FontFamily="Consolas, monospace" FontSize="11"
-                                                   Foreground="#2E7D32" HorizontalAlignment="Center"/>
-                                    </Border>
-                                </StackPanel>
-
-                                <!-- 鈹鈹鈹 绠¢亾 鈹鈹鈹 -->
-                                <controls:PipeLineControl Canvas.Left="30" Canvas.Top="180" Width="560" Height="20"
-                                                          IsFlow="{Binding IsInflowRunning}" IsHorizontal="True"
-                                                          PipeColor="#1C2333" WaterColor="#00897B"/>
-
-                                <!-- 鈹鈹鈹 闃闂ㄧ粍 鈹鈹鈹 -->
-                                <controls:ValveControl Canvas.Left="60" Canvas.Top="215" Width="36" Height="44"
-                                                       Status="{Binding Valve1Status}" Text="V1"
-                                                       ValveColor="#F59E0B" BackgroundColor="#1C2333"/>
-                                <controls:ValveControl Canvas.Left="190" Canvas.Top="215" Width="36" Height="44"
-                                                       Status="{Binding Valve2Status}" Text="V2"
-                                                       ValveColor="#F59E0B" BackgroundColor="#1C2333"/>
-                                <controls:ValveControl Canvas.Left="320" Canvas.Top="215" Width="36" Height="44"
-                                                       Status="{Binding Valve3Status}" Text="V3"
-                                                       ValveColor="#F59E0B" BackgroundColor="#1C2333"/>
-                                <controls:ValveControl Canvas.Left="450" Canvas.Top="215" Width="36" Height="44"
-                                                       Status="{Binding Valve4Status}" Text="V4"
-                                                       ValveColor="#F59E0B" BackgroundColor="#1C2333"/>
-
-                                <!-- 鈹鈹鈹 娉电粍 鈹鈹鈹 -->
-                                <StackPanel Orientation="Horizontal" Canvas.Left="30" Canvas.Top="280" Spacing="20">
-                                    <StackPanel>
-                                        <controls:PumpControl Width="64" Height="72"
-                                                              IsRunning="{Binding Pump1Running}" Frequency="50" Text="P1"/>
-                                        <TextBlock Text="杩涙按娉1" FontFamily="Consolas, monospace" FontSize="9"
-                                                   Foreground="#6B7280" HorizontalAlignment="Center" Margin="0,2,0,0"/>
-                                    </StackPanel>
+                                <!-- 绗竴琛岋細姘寸 -->
+                                <StackPanel Grid.Row="0" Grid.ColumnSpan="4" Orientation="Horizontal"
+                                            Spacing="20" HorizontalAlignment="Center" Margin="0,0,0,8">
                                     <StackPanel>
-                                        <controls:PumpControl Width="64" Height="72"
-                                                              IsRunning="{Binding Pump2Running}" Frequency="45" Text="P2"/>
-                                        <TextBlock Text="杩涙按娉2" FontFamily="Consolas, monospace" FontSize="9"
-                                                   Foreground="#6B7280" HorizontalAlignment="Center" Margin="0,2,0,0"/>
+                                        <controls:WaterTankControl Width="110" Height="130"
+                                                                   WaterLevel="{Binding Tank1Level}" Text="鍏ュ彛姹"
+                                                                   WaterColor="#00897B" BorderColor="#1C2333"/>
+                                        <Border Background="#1C2333" Padding="6,2" Margin="0,2,0,0">
+                                            <TextBlock Text="{Binding Tank1Level, StringFormat='LV: {0:F1}%'}"
+                                                       FontFamily="Consolas, monospace" FontSize="11"
+                                                       Foreground="#00897B" HorizontalAlignment="Center"/>
+                                        </Border>
                                     </StackPanel>
+                                    <TextBlock Text="鈫" FontSize="24" Foreground="#00897B" VerticalAlignment="Center"/>
                                     <StackPanel>
-                                        <controls:PumpControl Width="64" Height="72"
-                                                              IsRunning="{Binding Pump3Running}" Frequency="40" Text="P3"/>
-                                        <TextBlock Text="鍥炴祦娉" FontFamily="Consolas, monospace" FontSize="9"
-                                                   Foreground="#6B7280" HorizontalAlignment="Center" Margin="0,2,0,0"/>
+                                        <controls:WaterTankControl Width="110" Height="130"
+                                                                   WaterLevel="{Binding Tank2Level}" Text="鐢熷寲姹"
+                                                                   WaterColor="#0288D1" BorderColor="#1C2333"/>
+                                        <Border Background="#1C2333" Padding="6,2" Margin="0,2,0,0">
+                                            <TextBlock Text="{Binding Tank2Level, StringFormat='LV: {0:F1}%'}"
+                                                       FontFamily="Consolas, monospace" FontSize="11"
+                                                       Foreground="#0288D1" HorizontalAlignment="Center"/>
+                                        </Border>
                                     </StackPanel>
+                                    <TextBlock Text="鈫" FontSize="24" Foreground="#00897B" VerticalAlignment="Center"/>
                                     <StackPanel>
-                                        <controls:PumpControl Width="64" Height="72"
-                                                              IsRunning="{Binding Pump4Running}" Frequency="35" Text="P4"/>
-                                        <TextBlock Text="鎺掓偿娉" FontFamily="Consolas, monospace" FontSize="9"
-                                                   Foreground="#6B7280" HorizontalAlignment="Center" Margin="0,2,0,0"/>
+                                        <controls:WaterTankControl Width="110" Height="130"
+                                                                   WaterLevel="{Binding Tank3Level}" Text="娌夋穩姹"
+                                                                   WaterColor="#7B1FA2" BorderColor="#1C2333"/>
+                                        <Border Background="#1C2333" Padding="6,2" Margin="0,2,0,0">
+                                            <TextBlock Text="{Binding Tank3Level, StringFormat='LV: {0:F1}%'}"
+                                                       FontFamily="Consolas, monospace" FontSize="11"
+                                                       Foreground="#7B1FA2" HorizontalAlignment="Center"/>
+                                        </Border>
                                     </StackPanel>
+                                    <TextBlock Text="鈫" FontSize="24" Foreground="#00897B" VerticalAlignment="Center"/>
                                     <StackPanel>
-                                        <controls:PumpControl Width="64" Height="72"
-                                                              IsRunning="{Binding Pump5Running}" Frequency="55" Text="P5"/>
-                                        <TextBlock Text="鍔犺嵂娉" FontFamily="Consolas, monospace" FontSize="9"
-                                                   Foreground="#6B7280" HorizontalAlignment="Center" Margin="0,2,0,0"/>
+                                        <controls:WaterTankControl Width="110" Height="130"
+                                                                   WaterLevel="{Binding Tank4Level}" Text="鍑哄彛姹"
+                                                                   WaterColor="#2E7D32" BorderColor="#1C2333"/>
+                                        <Border Background="#1C2333" Padding="6,2" Margin="0,2,0,0">
+                                            <TextBlock Text="{Binding Tank4Level, StringFormat='LV: {0:F1}%'}"
+                                                       FontFamily="Consolas, monospace" FontSize="11"
+                                                       Foreground="#2E7D32" HorizontalAlignment="Center"/>
+                                        </Border>
                                     </StackPanel>
                                 </StackPanel>
 
-                                <!-- 鈹鈹鈹 椋庢満缁 鈹鈹鈹 -->
-                                <StackPanel Orientation="Horizontal" Canvas.Left="120" Canvas.Top="375" Spacing="40">
-                                    <StackPanel>
-                                        <controls:FanControl Width="44" Height="44"
-                                                              IsRunning="{Binding Fan1Running}" Speed="1" Text="F1"/>
-                                        <TextBlock Text="椋庢満1" FontFamily="Consolas, monospace" FontSize="9"
-                                                   Foreground="#6B7280" HorizontalAlignment="Center" Margin="0,2,0,0"/>
-                                    </StackPanel>
-                                    <StackPanel>
-                                        <controls:FanControl Width="44" Height="44"
-                                                              IsRunning="{Binding Fan2Running}" Speed="1.5" Text="F2"/>
-                                        <TextBlock Text="椋庢満2" FontFamily="Consolas, monospace" FontSize="9"
-                                                   Foreground="#6B7280" HorizontalAlignment="Center" Margin="0,2,0,0"/>
-                                    </StackPanel>
-                                </StackPanel>
-
-                                <!-- 鈹鈹鈹 娴佸悜绠ご 鈹鈹鈹 -->
-                                <TextBlock Text="鈫" Canvas.Left="145" Canvas.Top="75" FontSize="20" Foreground="#00897B"/>
-                                <TextBlock Text="鈫" Canvas.Left="295" Canvas.Top="75" FontSize="20" Foreground="#00897B"/>
-                                <TextBlock Text="鈫" Canvas.Left="445" Canvas.Top="75" FontSize="20" Foreground="#00897B"/>
-                                <TextBlock Text="鈫" Canvas.Left="595" Canvas.Top="75" FontSize="20" Foreground="#00897B"/>
-
-                                <!-- 鈹鈹鈹 妯″紡鍒囨崲 鈹鈹鈹 -->
-                                <Border Canvas.Left="700" Canvas.Top="20" Width="160" Height="80"
-                                        Background="#111820" BorderBrush="#1C2333" BorderThickness="1" CornerRadius="2">
-                                    <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center" Spacing="6">
-                                        <TextBlock Text="MODE" FontFamily="Consolas, monospace"
-                                                   FontSize="10" Foreground="#6B7280" HorizontalAlignment="Center"/>
-                                        <controls:ValveControl Width="40" Height="40"
-                                                               Status="{Binding ModeStatus}" Text="AUTO"
-                                                               ValveColor="#00897B" BackgroundColor="#1C2333"/>
-                                    </StackPanel>
+                                <!-- 绗簩琛岋細绠¢亾 -->
+                                <Border Grid.Row="1" Grid.ColumnSpan="4" Margin="0,0,0,4">
+                                    <controls:PipeLineControl Height="18"
+                                                              IsFlow="{Binding IsInflowRunning}" IsHorizontal="True"
+                                                              PipeColor="#1C2333" WaterColor="#00897B"/>
                                 </Border>
 
-                                <!-- 鈹鈹鈹 瀹炴椂鏁版嵁闈㈡澘 鈹鈹鈹 -->
-                                <Border Canvas.Left="700" Canvas.Top="110" Width="160" Height="180"
-                                        Background="#111820" BorderBrush="#1C2333" BorderThickness="1" CornerRadius="2">
-                                    <StackPanel Margin="10,8" Spacing="8">
-                                        <TextBlock Text="REALTIME" FontFamily="Consolas, monospace"
-                                                   FontSize="10" Foreground="#6B7280"/>
+                                <!-- 绗笁琛岋細闃闂 -->
+                                <StackPanel Grid.Row="2" Grid.ColumnSpan="4" Orientation="Horizontal"
+                                            Spacing="40" HorizontalAlignment="Center" Margin="0,0,0,8">
+                                    <controls:ValveControl Width="36" Height="44"
+                                                           Status="{Binding Valve1Status}" Text="V1"
+                                                           ValveColor="#F59E0B" BackgroundColor="#1C2333"/>
+                                    <controls:ValveControl Width="36" Height="44"
+                                                           Status="{Binding Valve2Status}" Text="V2"
+                                                           ValveColor="#F59E0B" BackgroundColor="#1C2333"/>
+                                    <controls:ValveControl Width="36" Height="44"
+                                                           Status="{Binding Valve3Status}" Text="V3"
+                                                           ValveColor="#F59E0B" BackgroundColor="#1C2333"/>
+                                    <controls:ValveControl Width="36" Height="44"
+                                                           Status="{Binding Valve4Status}" Text="V4"
+                                                           ValveColor="#F59E0B" BackgroundColor="#1C2333"/>
+                                </StackPanel>
 
-                                        <StackPanel Spacing="2">
-                                            <TextBlock Text="INFLOW" FontFamily="Consolas, monospace" FontSize="9" Foreground="#4B5563"/>
-                                            <TextBlock FontFamily="Consolas, monospace" FontSize="16" FontWeight="Bold" Foreground="#00897B">
-                                                <Run Text="{Binding InflowRate, StringFormat='{}{0:F1}'}"/>
-                                                <Run Text=" m鲁/h" FontSize="10" Foreground="#6B7280"/>
-                                            </TextBlock>
+                                <!-- 绗洓琛岋細娉+椋庢満 -->
+                                <Grid Grid.Row="3" Grid.ColumnSpan="4" ColumnDefinitions="*,Auto">
+                                    <!-- 娉电粍 -->
+                                    <StackPanel Grid.Column="0" Orientation="Horizontal" Spacing="16">
+                                        <StackPanel>
+                                            <controls:PumpControl Width="60" Height="68"
+                                                                  IsRunning="{Binding Pump1Running}" Frequency="50" Text="P1"/>
+                                            <TextBlock Text="杩涙按娉1" FontFamily="Consolas, monospace" FontSize="9"
+                                                       Foreground="#6B7280" HorizontalAlignment="Center" Margin="0,2,0,0"/>
                                         </StackPanel>
-
-                                        <Border Background="#1C2333" Height="1"/>
-
-                                        <StackPanel Spacing="2">
-                                            <TextBlock Text="OUTFLOW" FontFamily="Consolas, monospace" FontSize="9" Foreground="#4B5563"/>
-                                            <TextBlock FontFamily="Consolas, monospace" FontSize="16" FontWeight="Bold" Foreground="#2E7D32">
-                                                <Run Text="{Binding OutflowRate, StringFormat='{}{0:F1}'}"/>
-                                                <Run Text=" m鲁/h" FontSize="10" Foreground="#6B7280"/>
-                                            </TextBlock>
+                                        <StackPanel>
+                                            <controls:PumpControl Width="60" Height="68"
+                                                                  IsRunning="{Binding Pump2Running}" Frequency="45" Text="P2"/>
+                                            <TextBlock Text="杩涙按娉2" FontFamily="Consolas, monospace" FontSize="9"
+                                                       Foreground="#6B7280" HorizontalAlignment="Center" Margin="0,2,0,0"/>
                                         </StackPanel>
-
-                                        <Border Background="#1C2333" Height="1"/>
-
-                                        <StackPanel Spacing="2">
-                                            <TextBlock Text="DELTA" FontFamily="Consolas, monospace" FontSize="9" Foreground="#4B5563"/>
-                                            <TextBlock FontFamily="Consolas, monospace" FontSize="14" Foreground="#F59E0B">
-                                                <Run Text="{Binding FlowDelta, StringFormat='{}{0:F1}'}"/>
-                                                <Run Text=" m鲁/h" FontSize="10" Foreground="#6B7280"/>
-                                            </TextBlock>
+                                        <StackPanel>
+                                            <controls:PumpControl Width="60" Height="68"
+                                                                  IsRunning="{Binding Pump3Running}" Frequency="40" Text="P3"/>
+                                            <TextBlock Text="鍥炴祦娉" FontFamily="Consolas, monospace" FontSize="9"
+                                                       Foreground="#6B7280" HorizontalAlignment="Center" Margin="0,2,0,0"/>
+                                        </StackPanel>
+                                        <StackPanel>
+                                            <controls:PumpControl Width="60" Height="68"
+                                                                  IsRunning="{Binding Pump4Running}" Frequency="35" Text="P4"/>
+                                            <TextBlock Text="鎺掓偿娉" FontFamily="Consolas, monospace" FontSize="9"
+                                                       Foreground="#6B7280" HorizontalAlignment="Center" Margin="0,2,0,0"/>
+                                        </StackPanel>
+                                        <StackPanel>
+                                            <controls:PumpControl Width="60" Height="68"
+                                                                  IsRunning="{Binding Pump5Running}" Frequency="55" Text="P5"/>
+                                            <TextBlock Text="鍔犺嵂娉" FontFamily="Consolas, monospace" FontSize="9"
+                                                       Foreground="#6B7280" HorizontalAlignment="Center" Margin="0,2,0,0"/>
                                         </StackPanel>
                                     </StackPanel>
-                                </Border>
 
-                                <!-- 鈹鈹鈹 杩愯缁熻 鈹鈹鈹 -->
-                                <Border Canvas.Left="700" Canvas.Top="300" Width="160" Height="140"
-                                        Background="#111820" BorderBrush="#1C2333" BorderThickness="1" CornerRadius="2">
-                                    <StackPanel Margin="10,8" Spacing="6">
-                                        <TextBlock Text="STATISTICS" FontFamily="Consolas, monospace"
-                                                   FontSize="10" Foreground="#6B7280"/>
-
-                                        <Grid ColumnDefinitions="*,Auto">
-                                            <TextBlock Grid.Column="0" Text="RUNTIME" FontFamily="Consolas, monospace" FontSize="10" Foreground="#4B5563"/>
-                                            <TextBlock Grid.Column="1" Text="{Binding RunningTime}" FontFamily="Consolas, monospace" FontSize="10" Foreground="#9CA3AF"/>
-                                        </Grid>
-
-                                        <Grid ColumnDefinitions="*,Auto">
-                                            <TextBlock Grid.Column="0" Text="DEVICES" FontFamily="Consolas, monospace" FontSize="10" Foreground="#4B5563"/>
-                                            <TextBlock Grid.Column="1" Text="{Binding RunningDeviceCount, StringFormat='{}{0} ON'}" FontFamily="Consolas, monospace" FontSize="10" Foreground="#00897B"/>
-                                        </Grid>
-
-                                        <Grid ColumnDefinitions="*,Auto">
-                                            <TextBlock Grid.Column="0" Text="ALARMS" FontFamily="Consolas, monospace" FontSize="10" Foreground="#4B5563"/>
-                                            <TextBlock Grid.Column="1" Text="{Binding AlarmCount, StringFormat='{}{0}'}" FontFamily="Consolas, monospace" FontSize="10" Foreground="#EF4444"/>
-                                        </Grid>
+                                    <!-- 椋庢満缁 -->
+                                    <StackPanel Grid.Column="1" Orientation="Horizontal" Spacing="20" Margin="20,0,0,0">
+                                        <StackPanel>
+                                            <controls:FanControl Width="44" Height="44"
+                                                                  IsRunning="{Binding Fan1Running}" Speed="1" Text="F1"/>
+                                            <TextBlock Text="椋庢満1" FontFamily="Consolas, monospace" FontSize="9"
+                                                       Foreground="#6B7280" HorizontalAlignment="Center" Margin="0,2,0,0"/>
+                                        </StackPanel>
+                                        <StackPanel>
+                                            <controls:FanControl Width="44" Height="44"
+                                                                  IsRunning="{Binding Fan2Running}" Speed="1.5" Text="F2"/>
+                                            <TextBlock Text="椋庢満2" FontFamily="Consolas, monospace" FontSize="9"
+                                                       Foreground="#6B7280" HorizontalAlignment="Center" Margin="0,2,0,0"/>
+                                        </StackPanel>
+                                    </StackPanel>
+                                </Grid>
+
+                                <!-- 鍙充晶锛氭暟鎹潰鏉 -->
+                                <Grid Grid.Row="0" Grid.RowSpan="4" Grid.Column="4" RowDefinitions="Auto,Auto,Auto" Margin="8,0,0,0">
+                                    <!-- 妯″紡 -->
+                                    <Border Grid.Row="0" Background="#111820" BorderBrush="#1C2333" BorderThickness="1"
+                                            CornerRadius="2" Padding="8" Margin="0,0,0,6">
+                                        <StackPanel HorizontalAlignment="Center" Spacing="4">
+                                            <TextBlock Text="MODE" FontFamily="Consolas, monospace"
+                                                       FontSize="10" Foreground="#6B7280"/>
+                                            <controls:ValveControl Width="36" Height="36"
+                                                                   Status="{Binding ModeStatus}" Text="AUTO"
+                                                                   ValveColor="#00897B" BackgroundColor="#1C2333"/>
+                                        </StackPanel>
+                                    </Border>
 
-                                        <Border Background="#1C2333" Height="1"/>
+                                    <!-- 瀹炴椂鏁版嵁 -->
+                                    <Border Grid.Row="1" Background="#111820" BorderBrush="#1C2333" BorderThickness="1"
+                                            CornerRadius="2" Padding="8" Margin="0,0,0,6">
+                                        <StackPanel Spacing="6">
+                                            <TextBlock Text="REALTIME" FontFamily="Consolas, monospace"
+                                                       FontSize="10" Foreground="#6B7280"/>
+                                            <StackPanel Spacing="1">
+                                                <TextBlock Text="INFLOW" FontFamily="Consolas, monospace" FontSize="9" Foreground="#4B5563"/>
+                                                <TextBlock FontFamily="Consolas, monospace" FontSize="15" FontWeight="Bold" Foreground="#00897B">
+                                                    <Run Text="{Binding InflowRate, StringFormat='{}{0:F1}'}"/>
+                                                    <Run Text=" m鲁/h" FontSize="9" Foreground="#6B7280"/>
+                                                </TextBlock>
+                                            </StackPanel>
+                                            <Border Background="#1C2333" Height="1"/>
+                                            <StackPanel Spacing="1">
+                                                <TextBlock Text="OUTFLOW" FontFamily="Consolas, monospace" FontSize="9" Foreground="#4B5563"/>
+                                                <TextBlock FontFamily="Consolas, monospace" FontSize="15" FontWeight="Bold" Foreground="#2E7D32">
+                                                    <Run Text="{Binding OutflowRate, StringFormat='{}{0:F1}'}"/>
+                                                    <Run Text=" m鲁/h" FontSize="9" Foreground="#6B7280"/>
+                                                </TextBlock>
+                                            </StackPanel>
+                                            <Border Background="#1C2333" Height="1"/>
+                                            <StackPanel Spacing="1">
+                                                <TextBlock Text="DELTA" FontFamily="Consolas, monospace" FontSize="9" Foreground="#4B5563"/>
+                                                <TextBlock FontFamily="Consolas, monospace" FontSize="13" Foreground="#F59E0B">
+                                                    <Run Text="{Binding FlowDelta, StringFormat='{}{0:F1}'}"/>
+                                                    <Run Text=" m鲁/h" FontSize="9" Foreground="#6B7280"/>
+                                                </TextBlock>
+                                            </StackPanel>
+                                        </StackPanel>
+                                    </Border>
 
-                                        <TextBlock Text="EFFICIENCY" FontFamily="Consolas, monospace" FontSize="10" Foreground="#4B5563"/>
-                                        <TextBlock FontFamily="Consolas, monospace" FontSize="18" FontWeight="Bold" Foreground="#00897B">
-                                            <Run Text="{Binding Efficiency, StringFormat='{}{0:F0}'}"/>
-                                            <Run Text="%" FontSize="12" Foreground="#6B7280"/>
-                                        </TextBlock>
-                                    </StackPanel>
-                                </Border>
-                            </Canvas>
+                                    <!-- 缁熻 -->
+                                    <Border Grid.Row="2" Background="#111820" BorderBrush="#1C2333" BorderThickness="1"
+                                            CornerRadius="2" Padding="8">
+                                        <StackPanel Spacing="5">
+                                            <TextBlock Text="STATISTICS" FontFamily="Consolas, monospace"
+                                                       FontSize="10" Foreground="#6B7280"/>
+                                            <Grid ColumnDefinitions="*,Auto">
+                                                <TextBlock Grid.Column="0" Text="RUNTIME" FontFamily="Consolas, monospace" FontSize="10" Foreground="#4B5563"/>
+                                                <TextBlock Grid.Column="1" Text="{Binding RunningTime}" FontFamily="Consolas, monospace" FontSize="10" Foreground="#9CA3AF"/>
+                                            </Grid>
+                                            <Grid ColumnDefinitions="*,Auto">
+                                                <TextBlock Grid.Column="0" Text="DEVICES" FontFamily="Consolas, monospace" FontSize="10" Foreground="#4B5563"/>
+                                                <TextBlock Grid.Column="1" Text="{Binding RunningDeviceCount, StringFormat='{}{0} ON'}" FontFamily="Consolas, monospace" FontSize="10" Foreground="#00897B"/>
+                                            </Grid>
+                                            <Grid ColumnDefinitions="*,Auto">
+                                                <TextBlock Grid.Column="0" Text="ALARM" FontFamily="Consolas, monospace" FontSize="10" Foreground="#4B5563"/>
+                                                <TextBlock Grid.Column="1" Text="{Binding AlarmCount, StringFormat='{}{0}'}" FontFamily="Consolas, monospace" FontSize="10" Foreground="#EF4444"/>
+                                            </Grid>
+                                            <Border Background="#1C2333" Height="1"/>
+                                            <TextBlock Text="EFFICIENCY" FontFamily="Consolas, monospace" FontSize="10" Foreground="#4B5563"/>
+                                            <TextBlock FontFamily="Consolas, monospace" FontSize="16" FontWeight="Bold" Foreground="#00897B">
+                                                <Run Text="{Binding Efficiency, StringFormat='{}{0:F0}'}"/>
+                                                <Run Text="%" FontSize="11" Foreground="#6B7280"/>
+                                            </TextBlock>
+                                        </StackPanel>
+                                    </Border>
+                                </Grid>
+                            </Grid>
                         </Border>
 
                         <!-- 搴曢儴璁惧鐘舵佹潯 -->
                         <Border Grid.Row="2" Background="#111820" CornerRadius="2" Margin="0,4,0,0" Padding="8,6">
-                            <StackPanel Orientation="Horizontal" Spacing="16">
-                                <!-- 璁惧 LED 鎸囩ず -->
+                            <StackPanel Orientation="Horizontal" Spacing="12">
                                 <StackPanel Orientation="Horizontal" Spacing="4">
-                                    <Border Width="8" Height="8" CornerRadius="4"
-                                            Background="{Binding Pump1StatusColor}"/>
+                                    <Border Width="8" Height="8" CornerRadius="4" Background="{Binding Pump1StatusColor}"/>
                                     <TextBlock Text="P1" FontFamily="Consolas, monospace" FontSize="10" Foreground="#6B7280"/>
                                 </StackPanel>
                                 <StackPanel Orientation="Horizontal" Spacing="4">
-                                    <Border Width="8" Height="8" CornerRadius="4"
-                                            Background="{Binding Pump2StatusColor}"/>
+                                    <Border Width="8" Height="8" CornerRadius="4" Background="{Binding Pump2StatusColor}"/>
                                     <TextBlock Text="P2" FontFamily="Consolas, monospace" FontSize="10" Foreground="#6B7280"/>
                                 </StackPanel>
                                 <StackPanel Orientation="Horizontal" Spacing="4">
-                                    <Border Width="8" Height="8" CornerRadius="4"
-                                            Background="{Binding Pump3StatusColor}"/>
+                                    <Border Width="8" Height="8" CornerRadius="4" Background="{Binding Pump3StatusColor}"/>
                                     <TextBlock Text="P3" FontFamily="Consolas, monospace" FontSize="10" Foreground="#6B7280"/>
                                 </StackPanel>
                                 <StackPanel Orientation="Horizontal" Spacing="4">
-                                    <Border Width="8" Height="8" CornerRadius="4"
-                                            Background="{Binding Pump4StatusColor}"/>
+                                    <Border Width="8" Height="8" CornerRadius="4" Background="{Binding Pump4StatusColor}"/>
                                     <TextBlock Text="P4" FontFamily="Consolas, monospace" FontSize="10" Foreground="#6B7280"/>
                                 </StackPanel>
                                 <StackPanel Orientation="Horizontal" Spacing="4">
-                                    <Border Width="8" Height="8" CornerRadius="4"
-                                            Background="{Binding Pump5StatusColor}"/>
+                                    <Border Width="8" Height="8" CornerRadius="4" Background="{Binding Pump5StatusColor}"/>
                                     <TextBlock Text="P5" FontFamily="Consolas, monospace" FontSize="10" Foreground="#6B7280"/>
                                 </StackPanel>
-
                                 <Border Background="#1C2333" Width="1" Height="16"/>
-
                                 <StackPanel Orientation="Horizontal" Spacing="4">
-                                    <Border Width="8" Height="8" CornerRadius="4"
-                                            Background="{Binding Fan1StatusColor}"/>
+                                    <Border Width="8" Height="8" CornerRadius="4" Background="{Binding Fan1StatusColor}"/>
                                     <TextBlock Text="F1" FontFamily="Consolas, monospace" FontSize="10" Foreground="#6B7280"/>
                                 </StackPanel>
                                 <StackPanel Orientation="Horizontal" Spacing="4">
-                                    <Border Width="8" Height="8" CornerRadius="4"
-                                            Background="{Binding Fan2StatusColor}"/>
+                                    <Border Width="8" Height="8" CornerRadius="4" Background="{Binding Fan2StatusColor}"/>
                                     <TextBlock Text="F2" FontFamily="Consolas, monospace" FontSize="10" Foreground="#6B7280"/>
                                 </StackPanel>
-
                                 <Border Background="#1C2333" Width="1" Height="16"/>
-
                                 <StackPanel Orientation="Horizontal" Spacing="4">
-                                    <Border Width="8" Height="8" CornerRadius="4"
-                                            Background="{Binding Valve1StatusColor}"/>
+                                    <Border Width="8" Height="8" CornerRadius="4" Background="{Binding Valve1StatusColor}"/>
                                     <TextBlock Text="V1" FontFamily="Consolas, monospace" FontSize="10" Foreground="#6B7280"/>
                                 </StackPanel>
                                 <StackPanel Orientation="Horizontal" Spacing="4">
-                                    <Border Width="8" Height="8" CornerRadius="4"
-                                            Background="{Binding Valve2StatusColor}"/>
+                                    <Border Width="8" Height="8" CornerRadius="4" Background="{Binding Valve2StatusColor}"/>
                                     <TextBlock Text="V2" FontFamily="Consolas, monospace" FontSize="10" Foreground="#6B7280"/>
                                 </StackPanel>
                                 <StackPanel Orientation="Horizontal" Spacing="4">
-                                    <Border Width="8" Height="8" CornerRadius="4"
-                                            Background="{Binding Valve3StatusColor}"/>
+                                    <Border Width="8" Height="8" CornerRadius="4" Background="{Binding Valve3StatusColor}"/>
                                     <TextBlock Text="V3" FontFamily="Consolas, monospace" FontSize="10" Foreground="#6B7280"/>
                                 </StackPanel>
                                 <StackPanel Orientation="Horizontal" Spacing="4">
-                                    <Border Width="8" Height="8" CornerRadius="4"
-                                            Background="{Binding Valve4StatusColor}"/>
+                                    <Border Width="8" Height="8" CornerRadius="4" Background="{Binding Valve4StatusColor}"/>
                                     <TextBlock Text="V4" FontFamily="Consolas, monospace" FontSize="10" Foreground="#6B7280"/>
                                 </StackPanel>
                             </StackPanel>
@@ -359,14 +330,12 @@
                 <!-- 鍙充晶闈㈡澘 -->
                 <Grid Grid.Column="1" RowDefinitions="Auto,Auto,*,Auto">
 
-                    <!-- 娴侀噺浠〃 -->
                     <Border Grid.Row="0" Background="#111820" CornerRadius="2" Padding="10,8" Margin="0,0,0,4"
                             BorderBrush="#1C2333" BorderThickness="1">
                         <StackPanel>
                             <StackPanel Orientation="Horizontal" Spacing="6" Margin="0,0,0,8">
                                 <Border Background="#00897B" Width="3" Height="14" CornerRadius="1"/>
-                                <TextBlock Text="FLOW METERS" FontFamily="Consolas, monospace"
-                                           FontSize="11" Foreground="#9CA3AF"/>
+                                <TextBlock Text="FLOW METERS" FontFamily="Consolas, monospace" FontSize="11" Foreground="#9CA3AF"/>
                             </StackPanel>
                             <Grid ColumnDefinitions="*,*">
                                 <controls:GaugeControl Grid.Column="0" Width="110" Height="130"
@@ -379,58 +348,44 @@
                         </StackPanel>
                     </Border>
 
-                    <!-- 璁惧鐘舵 -->
                     <Border Grid.Row="1" Background="#111820" CornerRadius="2" Padding="10,8" Margin="0,0,0,4"
                             BorderBrush="#1C2333" BorderThickness="1">
                         <StackPanel>
                             <StackPanel Orientation="Horizontal" Spacing="6" Margin="0,0,0,8">
                                 <Border Background="#F59E0B" Width="3" Height="14" CornerRadius="1"/>
-                                <TextBlock Text="DEVICE STATUS" FontFamily="Consolas, monospace"
-                                           FontSize="11" Foreground="#9CA3AF"/>
+                                <TextBlock Text="DEVICE STATUS" FontFamily="Consolas, monospace" FontSize="11" Foreground="#9CA3AF"/>
                             </StackPanel>
                             <StackPanel Spacing="3">
-                                <controls:StatusCard Title="杩涙按娉1" Status="{Binding Pump1Status}" Icon="P1"
-                                                     IsActive="{Binding Pump1Running}"/>
-                                <controls:StatusCard Title="杩涙按娉2" Status="{Binding Pump2Status}" Icon="P2"
-                                                     IsActive="{Binding Pump2Running}"/>
-                                <controls:StatusCard Title="鍥炴祦娉" Status="{Binding Pump3Status}" Icon="P3"
-                                                     IsActive="{Binding Pump3Running}"/>
-                                <controls:StatusCard Title="椋庢満1" Status="{Binding Fan1Status}" Icon="F1"
-                                                     IsActive="{Binding Fan1Running}"/>
-                                <controls:StatusCard Title="椋庢満2" Status="{Binding Fan2Status}" Icon="F2"
-                                                     IsActive="{Binding Fan2Running}"/>
+                                <controls:StatusCard Title="杩涙按娉1" Status="{Binding Pump1Status}" Icon="P1" IsActive="{Binding Pump1Running}"/>
+                                <controls:StatusCard Title="杩涙按娉2" Status="{Binding Pump2Status}" Icon="P2" IsActive="{Binding Pump2Running}"/>
+                                <controls:StatusCard Title="鍥炴祦娉" Status="{Binding Pump3Status}" Icon="P3" IsActive="{Binding Pump3Running}"/>
+                                <controls:StatusCard Title="椋庢満1" Status="{Binding Fan1Status}" Icon="F1" IsActive="{Binding Fan1Running}"/>
+                                <controls:StatusCard Title="椋庢満2" Status="{Binding Fan2Status}" Icon="F2" IsActive="{Binding Fan2Running}"/>
                             </StackPanel>
                         </StackPanel>
                     </Border>
 
-                    <!-- 鎶ヨ闈㈡澘 -->
                     <Border Grid.Row="2" Background="#111820" CornerRadius="2" Padding="10,8" Margin="0,0,0,4"
-                            BorderBrush="#1C2333" BorderThickness="1"
-                            IsVisible="{Binding HasAlarm}">
+                            BorderBrush="#1C2333" BorderThickness="1" IsVisible="{Binding HasAlarm}">
                         <StackPanel>
                             <StackPanel Orientation="Horizontal" Spacing="6" Margin="0,0,0,8">
                                 <Border Background="#EF4444" Width="3" Height="14" CornerRadius="1"/>
-                                <TextBlock Text="ALARM" FontFamily="Consolas, monospace"
-                                           FontSize="11" Foreground="#EF4444"/>
-                                <TextBlock Text="{Binding AlarmCount, StringFormat='({0})'}"
-                                           FontFamily="Consolas, monospace" FontSize="11" Foreground="#EF4444"/>
+                                <TextBlock Text="ALARM" FontFamily="Consolas, monospace" FontSize="11" Foreground="#EF4444"/>
+                                <TextBlock Text="{Binding AlarmCount, StringFormat='({0})'}" FontFamily="Consolas, monospace" FontSize="11" Foreground="#EF4444"/>
                             </StackPanel>
                             <Border Background="#1C0000" BorderBrush="#EF4444" BorderThickness="1" Padding="8">
                                 <TextBlock Text="{Binding AlarmMessage}" Foreground="#EF4444"
-                                           FontFamily="Consolas, monospace" FontSize="11"
-                                           TextWrapping="Wrap"/>
+                                           FontFamily="Consolas, monospace" FontSize="11" TextWrapping="Wrap"/>
                             </Border>
                         </StackPanel>
                     </Border>
 
-                    <!-- 蹇嵎鎿嶄綔 -->
                     <Border Grid.Row="3" Background="#111820" CornerRadius="2" Padding="10,8"
                             BorderBrush="#1C2333" BorderThickness="1">
                         <StackPanel>
                             <StackPanel Orientation="Horizontal" Spacing="6" Margin="0,0,0,8">
                                 <Border Background="#3B82F6" Width="3" Height="14" CornerRadius="1"/>
-                                <TextBlock Text="QUICK OPS" FontFamily="Consolas, monospace"
-                                           FontSize="11" Foreground="#9CA3AF"/>
+                                <TextBlock Text="QUICK OPS" FontFamily="Consolas, monospace" FontSize="11" Foreground="#9CA3AF"/>
                             </StackPanel>
                             <WrapPanel HorizontalAlignment="Center">
                                 <Button Content="START ALL" Margin="3" Padding="10,5"
@@ -456,41 +411,26 @@
                 <Grid ColumnDefinitions="Auto,*,Auto,Auto,Auto,Auto" Margin="16,0">
                     <TextBlock Grid.Column="0" VerticalAlignment="Center"
                                FontFamily="Consolas, monospace" FontSize="11" Foreground="#4B5563">
-                        <Run Text="INFLOW: "/>
-                        <Run Text="{Binding InflowRate, StringFormat='{}{0:F1}'}" Foreground="#00897B"/>
-                        <Run Text=" m鲁/h"/>
+                        <Run Text="INFLOW: "/><Run Text="{Binding InflowRate, StringFormat='{}{0:F1}'}" Foreground="#00897B"/><Run Text=" m鲁/h"/>
                     </TextBlock>
-
                     <TextBlock Grid.Column="1" VerticalAlignment="Center" Margin="24,0"
                                FontFamily="Consolas, monospace" FontSize="11" Foreground="#4B5563">
-                        <Run Text="OUTFLOW: "/>
-                        <Run Text="{Binding OutflowRate, StringFormat='{}{0:F1}'}" Foreground="#2E7D32"/>
-                        <Run Text=" m鲁/h"/>
+                        <Run Text="OUTFLOW: "/><Run Text="{Binding OutflowRate, StringFormat='{}{0:F1}'}" Foreground="#2E7D32"/><Run Text=" m鲁/h"/>
                     </TextBlock>
-
                     <TextBlock Grid.Column="2" VerticalAlignment="Center"
                                FontFamily="Consolas, monospace" FontSize="11" Foreground="#4B5563">
-                        <Run Text="DEVICES: "/>
-                        <Run Text="{Binding RunningDeviceCount, StringFormat='{}{0}'}" Foreground="#00897B"/>
-                        <Run Text=" ACTIVE"/>
+                        <Run Text="DEVICES: "/><Run Text="{Binding RunningDeviceCount, StringFormat='{}{0}'}" Foreground="#00897B"/><Run Text=" ACTIVE"/>
                     </TextBlock>
-
                     <TextBlock Grid.Column="3" VerticalAlignment="Center" Margin="24,0"
                                FontFamily="Consolas, monospace" FontSize="11" Foreground="#4B5563">
-                        <Run Text="ALARM: "/>
-                        <Run Text="{Binding AlarmCount, StringFormat='{}{0}'}" Foreground="#EF4444"/>
+                        <Run Text="ALARM: "/><Run Text="{Binding AlarmCount, StringFormat='{}{0}'}" Foreground="#EF4444"/>
                     </TextBlock>
-
                     <TextBlock Grid.Column="4" VerticalAlignment="Center" Margin="24,0"
                                FontFamily="Consolas, monospace" FontSize="11" Foreground="#4B5563">
-                        <Run Text="UPTIME: "/>
-                        <Run Text="{Binding RunningTime}" Foreground="#9CA3AF"/>
+                        <Run Text="UPTIME: "/><Run Text="{Binding RunningTime}" Foreground="#9CA3AF"/>
                     </TextBlock>
-
                     <TextBlock Grid.Column="5" VerticalAlignment="Center"
-                               FontFamily="Consolas, monospace" FontSize="11" Foreground="#4B5563">
-                        <Run Text="v3.0.0"/>
-                    </TextBlock>
+                               FontFamily="Consolas, monospace" FontSize="11" Foreground="#4B5563" Text="v3.0.0"/>
                 </Grid>
             </Border>
         </Grid>

+ 1 - 1
src/YZWater.Avalonia/Views/ViewBView.axaml

@@ -8,7 +8,7 @@
         <vm:ViewBViewModel/>
     </UserControl.DataContext>
 
-    <Border Background="#1a1a2e" Width="1024" Height="613">
+    <Border Background="#0A0E14">
         <ScrollViewer>
             <Grid RowDefinitions="Auto,Auto,Auto" Margin="20">
                 <!-- PLC 杩炴帴璁剧疆 -->

+ 1 - 1
src/YZWater.Avalonia/Views/ViewCView.axaml

@@ -9,7 +9,7 @@
         <vm:ViewCViewModel/>
     </UserControl.DataContext>
 
-    <Border Background="#1a1a2e" Width="1024" Height="613">
+    <Border Background="#0A0E14">
         <Grid RowDefinitions="Auto,*,Auto" Margin="20">
             <!-- 鏃ユ湡绛涢 -->
             <Border Grid.Row="0" Background="#2d2d44" CornerRadius="8" Padding="15" Margin="0,0,0,15">

+ 1 - 1
src/YZWater.Avalonia/Views/ViewDView.axaml

@@ -8,7 +8,7 @@
         <vm:ViewDViewModel/>
     </UserControl.DataContext>
 
-    <Border Background="#1a1a2e" Width="1024" Height="613">
+    <Border Background="#0A0E14">
         <Grid RowDefinitions="Auto,*,Auto" Margin="20">
             <!-- 鏌ヨ鏉′欢 -->
             <Border Grid.Row="0" Background="#2d2d44" CornerRadius="8" Padding="15" Margin="0,0,0,15">

+ 1 - 1
src/YZWater.Avalonia/Views/ViewEView.axaml

@@ -8,7 +8,7 @@
         <vm:ViewEViewModel/>
     </UserControl.DataContext>
 
-    <Border Background="#1a1a2e" Width="1024" Height="613">
+    <Border Background="#0A0E14">
         <ScrollViewer>
             <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center" Spacing="30" Margin="50">
                 <!-- Logo 鍜岀郴缁熷悕绉 -->