From 9d1660270272180cd71147d6ddd53d1382643d2e Mon Sep 17 00:00:00 2001
From: wenxiangchao <wenxiangchao@ihengxin.com.cn>
Date: 星期一, 02 十一月 2026 18:00:14 +0800
Subject: [PATCH] merge: 并入远程 Initial commit 作为历史根节点

---
 HMI.Core/FontSizeConverter.cs |   88 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 88 insertions(+), 0 deletions(-)

diff --git a/HMI.Core/FontSizeConverter.cs b/HMI.Core/FontSizeConverter.cs
new file mode 100644
index 0000000..2498c4c
--- /dev/null
+++ b/HMI.Core/FontSizeConverter.cs
@@ -0,0 +1,88 @@
+锘縰sing System;
+using System.Globalization;
+using System.Windows.Data;
+
+namespace HMI.Core
+{
+    public class WidthSizeConverter : IValueConverter
+    {
+        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+        {
+            /// "{size},{鍩哄噯鍊紏,{鏈�灏忓�紏,{鏈�澶у�紏"
+            if (parameter == null) return 15;
+
+            string[] ps = parameter.ToString().Split(',');
+            double size = double.Parse(ps[0]);
+            double baseSize = double.Parse(ps[1]);
+            double min = -1, max = -1;
+
+            if (ps.Length >= 3)
+            {
+                min = double.Parse(ps[2]);
+            }
+            if (ps.Length >= 4)
+            {
+                max = double.Parse(ps[3]);
+            }
+
+            if (value is double width)
+            {
+                double res = CountFontSize(size, width, baseSize);
+                res = min > 0 && res < min ? min : res;
+                res = max > 0 && res > max ? max : res;
+                return res;
+            }
+            return 15;
+        }
+
+        public static double CountFontSize(double size, double limit, double baseSize)
+        {
+            return size * limit / baseSize;
+        }
+
+        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+        {
+            throw new NotImplementedException();
+        }
+    }
+
+    public class HeightSizeConverter : IValueConverter
+    {
+        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+        {
+            if (parameter == null) return 15;
+
+            string[] ps = parameter.ToString().Split(',');
+            int size = int.Parse(ps[0]);
+            int baseSize = int.Parse(ps[1]);
+            double min = -1, max = -1;
+
+            if (ps.Length >= 3)
+            {
+                min = double.Parse(ps[2]);
+            }
+            if (ps.Length >= 4)
+            {
+                max = double.Parse(ps[3]);
+            }
+            if (value is double height)
+            {
+                double res = CountFontSize(size, height, baseSize);
+                res = min > 0 && res < min ? min : res;
+                res = max > 0 && res > max ? max : res;
+                return res;
+            }
+            return 15;
+        }
+
+        public static double CountFontSize(double size, double limit, double baseSize)
+        {
+            return size * limit / baseSize;
+        }
+
+        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
+        {
+            throw new NotImplementedException();
+        }
+    }
+}

--
Gitblit v1.9.1