فهرست منبع

feat(d2-02-p5): operate 主页加临时'最小化/退出程序'按钮(测试期全屏便于关窗)

- 测试期 operate 全屏不便关窗、易留卡死进程;加'最小化'+'退出程序'(带二次确认)两个按钮
- 放第3列右上角,不影响整体布局;退出仅关 operate(control 独立进程不受影响),后续可连 XAML 整块删除

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
huangjie 1 روز پیش
والد
کامیت
b03fb0a89a

+ 5 - 0
ivf_tl_operate_2.0/ivf_tl_Operate/View/MainPageView.xaml

@@ -69,6 +69,11 @@
 MaxDropDownHeight="500" ItemContainerStyle="{StaticResource ComboBoxItemContainerStyle1}"
                           Style="{StaticResource ComboBoxStyle1}"/>
             </StackPanel>
+            <!-- 临时调试按钮(测试期全屏不便关窗):最小化 / 退出程序。放第3列右上角,不影响整体布局,后续可整块删除。 -->
+            <StackPanel Grid.Column="3" Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0 12 12 0">
+                <Button Content="最小化" Click="Button_Click" Width="160" Height="80" FontSize="32" FontWeight="Medium" Foreground="#0B1B31" Background="#E8EAEE" BorderBrush="#C4C7CC" BorderThickness="1"/>
+                <Button Content="退出程序" Click="ExitApp_Click" Width="160" Height="80" FontSize="32" FontWeight="Medium" Foreground="#FFFFFF" Background="#D9534F" BorderThickness="0" Margin="16 0 0 0"/>
+            </StackPanel>
             <customUserControl:StatusControl Margin="0 0 10 0" Grid.Column="4" x:Name="_status" Cursor="Hand" MouseDown="_status_MouseDown" Count="{Binding AlarmCount}" />
         </Grid>
 

+ 13 - 0
ivf_tl_operate_2.0/ivf_tl_Operate/View/MainPageView.xaml.cs

@@ -273,6 +273,19 @@ namespace ivf_tl_Operate.View
             AppData.Instance.MainWindow.WindowState = WindowState.Minimized;
         }
 
+        /// <summary>
+        /// 临时调试按钮:退出 operate 程序(测试期全屏不便关窗用)。
+        /// control 已是独立进程,operate 退出不影响机器运行。后续可连同 XAML 按钮整块删除。
+        /// </summary>
+        private void ExitApp_Click(object sender, RoutedEventArgs e)
+        {
+            var confirm = new MessageWindow(AppData.Instance.MainWindow, "确定要退出 operate 程序吗?", "退出确认");
+            if (confirm.ShowDialog() == true)
+            {
+                Application.Current.Shutdown();
+            }
+        }
+
         private void DishRecord_Click(object sender, RoutedEventArgs e)
         {
             DishRecordViewModel dishRecordViewModel = new DishRecordViewModel() { TLSn = vm.tlsn, ParentViewModel = vm };