@@ -620,10 +620,95 @@ await Task.WhenAll(
620620 public void InitializeDeviceSelectorLayout ( )
621621 {
622622 TopToolbar . SizeChanged += ( _ , _ ) => UpdateConnectionLayout ( ) ;
623- ThreeColumnGrid . SizeChanged += ( _ , _ ) => UpdateThreeColumnLayout ( ) ;
623+ ThreeColumnGrid . SizeChanged += ( _ , _ ) =>
624+ {
625+ UpdateThreeColumnLayout ( ) ;
626+ // AdjustColumnWidthsForAvailableSpace();
627+ } ;
628+
624629 UpdateConnectionLayout ( ) ;
625630 UpdateThreeColumnLayout ( ) ;
626631 }
632+ private double _lastThreeColumnGridWidth = 0 ;
633+ //
634+ // /// <summary>
635+ // /// 当窗口大小缩小时,调整列宽度以保持右边距
636+ // /// 优先级:先减右侧面板,右侧到最小值后再减左侧面板
637+ // /// </summary>
638+ // private void AdjustColumnWidthsForAvailableSpace()
639+ // {
640+ // var viewModel = Instances.TaskQueueViewModel;
641+ // if (viewModel == null || ThreeColumnGrid == null) return;
642+ //
643+ // // 只在横向三列模式下处理
644+ // if (_currentThreeColumnLayoutMode != 0) return;
645+ //
646+ // var availableWidth = ThreeColumnGrid.Bounds.Width;
647+ // if (availableWidth <= 0) return;
648+ //
649+ // // 只在窗口缩小时才触发
650+ // if (availableWidth >= _lastThreeColumnGridWidth)
651+ // {
652+ // _lastThreeColumnGridWidth = availableWidth;
653+ // return;
654+ // }
655+ //
656+ // _lastThreeColumnGridWidth = availableWidth;
657+ //
658+ // // 计算固定部分的宽度:左边距15+ 右边距15 + 两个分隔符各15
659+ // const double fixedMargins = 15 + 15 + 15 + 15;
660+ // const double minPanelWidth = 40; // 面板最小宽度
661+ //
662+ // // 获取当前列宽
663+ // var col1Width = viewModel.Column1Width.IsAbsolute ? viewModel.Column1Width.Value : (ThreeColumnGrid.ColumnDefinitions.Count > 0 ? ThreeColumnGrid.ColumnDefinitions[0].ActualWidth : 350);
664+ // var col2Width = viewModel.Column2Width.IsAbsolute ? viewModel.Column2Width.Value : (ThreeColumnGrid.ColumnDefinitions.Count > 2 ? ThreeColumnGrid.ColumnDefinitions[2].ActualWidth : 200);
665+ // var col3Width = viewModel.Column3Width.IsAbsolute ? viewModel.Column3Width.Value : (ThreeColumnGrid.ColumnDefinitions.Count > 4 ? ThreeColumnGrid.ColumnDefinitions[4].ActualWidth : 350);
666+ //
667+ // // 计算当前总宽度
668+ // var totalUsed = col1Width + col2Width + col3Width + fixedMargins;
669+ // // 如果没有超出可用宽度,不需要调整
670+ // if (totalUsed <= availableWidth) return;
671+ //
672+ // var overflow = totalUsed - availableWidth;
673+ // var newCol1Width = col1Width;
674+ // var newCol3Width = col3Width;
675+ // var changed = false;
676+ //
677+ // // 第一步:先减右侧面板
678+ // if (overflow > 0 && col3Width > minPanelWidth)
679+ // {
680+ // var canReduce = col3Width - minPanelWidth;
681+ // var reduceAmount = Math.Min(canReduce, overflow);
682+ // newCol3Width = col3Width - reduceAmount;
683+ // overflow -= reduceAmount;
684+ // changed = true;
685+ // }
686+ //
687+ // // 第二步:右侧已达最小值,减左侧面板
688+ // if (overflow > 0 && col1Width > minPanelWidth)
689+ // {
690+ // var canReduce = col1Width - minPanelWidth;
691+ // var reduceAmount = Math.Min(canReduce, overflow);
692+ // newCol1Width = col1Width - reduceAmount;
693+ // changed = true;
694+ // }
695+ //
696+ // // 应用更改
697+ // if (changed)
698+ // {
699+ // viewModel.SuppressPropertyChangedCallbacks = true;
700+ // if (newCol3Width != col3Width)
701+ // {
702+ // viewModel.Column3Width = new GridLength(newCol3Width, GridUnitType.Pixel);
703+ // }
704+ // if (newCol1Width != col1Width)
705+ // {
706+ // viewModel.Column1Width = new GridLength(newCol1Width, GridUnitType.Pixel);
707+ // }
708+ // viewModel.SuppressPropertyChangedCallbacks = false;
709+ // }
710+ // }
711+
627712
628713 public void UpdateConnectionLayout ( bool forceUpdate = false )
629714 {
0 commit comments