OSDN Git Service

ラベルの再描画を減らす
authorKazuhiro Fujieda <fujieda@users.osdn.me>
Fri, 6 Dec 2019 11:50:22 +0000 (20:50 +0900)
committerKazuhiro Fujieda <fujieda@users.osdn.me>
Fri, 6 Dec 2019 11:50:22 +0000 (20:50 +0900)
KancolleSniffer/View/ShipLabel.cs

index a252c81..bec8f9a 100644 (file)
@@ -50,7 +50,7 @@ namespace KancolleSniffer.View
 \r
         public new sealed class Name : ShipLabel\r
         {\r
-            private SlotStatus _slotStatus;\r
+            private SlotStatus _slotStatus, _prevSlotStatus;\r
             private readonly ShipNameWidth _defaultWidth;\r
 \r
             public static Font LatinFont { get; set; }\r
@@ -144,7 +144,9 @@ namespace KancolleSniffer.View
                 ChangeFont(name);\r
                 var realWidth = width == ShipNameWidth.Max ? (int)width : Scaler.ScaleWidth((int)width);\r
                 Text = prefix + StringTruncator.Truncate(name, "", realWidth, Font);\r
-                Invalidate(); // 必ずOnPaintを実行させるため\r
+                if (_prevSlotStatus != _slotStatus)\r
+                    Invalidate(); // OnPaintを実行させるため\r
+                _prevSlotStatus = _slotStatus;\r
             }\r
 \r
             private void ChangeFont(string name)\r