OSDN Git Service

スクロールバーの表示時に戦況の横幅が広すぎるのを直す
authorKazuhiro Fujieda <fujieda@users.osdn.me>
Tue, 23 Jan 2018 12:36:05 +0000 (21:36 +0900)
committerKazuhiro Fujieda <fujieda@users.osdn.me>
Sat, 27 Jan 2018 08:34:03 +0000 (17:34 +0900)
KancolleSniffer/BattleResultPanel.cs

index 70a0168..1ddb848 100644 (file)
@@ -216,12 +216,9 @@ namespace KancolleSniffer
                 _enemyLabels[i][1].SetName("");\r
             }\r
             var lines = Max(friendLines, enemyLines);\r
-            var labelWidth = _enemyLabels.Max(labels => labels[1].Size.Width);\r
             for (var i = 0; i < lines; i++)\r
             {\r
                 var panel = _panelList[i];\r
-                _panelList[i].Width = Max(ClientSize.Width,\r
-                    (int)Round(164 * ShipLabel.ScaleFactor.Width) + labelWidth - 1);\r
                 if (panel.Visible)\r
                     continue;\r
                 panel.Location = new Point(AutoScrollPosition.X,\r
@@ -230,9 +227,13 @@ namespace KancolleSniffer
             }\r
             for (var i = lines; i < _panelList.Count; i++)\r
                 _panelList[i].Visible = false;\r
+            ResumeLayout(); // スクロールバーの有無を決定する\r
+            var panelWidth = Max(ClientSize.Width, // スクロールバーの有無を反映した横幅\r
+                _enemyLabels[0][1].Location.X + _enemyLabels.Max(labels => labels[1].Size.Width) - 1); // 敵の名前の右端\r
+            for (var i = 0; i < lines; i++)\r
+                _panelList[i].Width = panelWidth;\r
             _infomationPanel.Location = new Point(AutoScrollPosition.X, 2 + AutoScrollPosition.Y);\r
             _infomationPanel.Visible = true;\r
-            ResumeLayout();\r
         }\r
 \r
         private string ShortenName(string name)\r