using Avalonia.Media; namespace YZWater.Avalonia.Controls; /// /// PLC 连接状态辅助类 - 供自定义控件订阅连接状态变化,实现断线降级显示。 /// 遵循 ISA-101 标准:断线时控件停止动画、变灰、叠加"通信中断"标记。 /// internal static class ConnectionStateHelper { /// 连接状态变化事件 public static event Action? StateChanged; /// 当前是否已连接 public static bool IsConnected { get; private set; } = true; /// 断线态灰色画刷(统一降级视觉) public static IBrush DisconnectedGray { get; } = new SolidColorBrush(Color.Parse("#6B7280")); /// 断线态文字画刷 public static IBrush DisconnectedText { get; } = new SolidColorBrush(Color.Parse("#9CA3AF")); /// 断线警告色(橙黄) public static IBrush DisconnectedWarning { get; } = new SolidColorBrush(Color.Parse("#F5A524")); /// 半透明遮罩(用于叠加在控件上表示数据失效) public static IBrush OverlayBrush { get; } = new SolidColorBrush(Color.Parse("#000000"), 0.25); /// /// 设置连接状态(由 App 层在连接状态变化时调用) /// public static void SetConnected(bool connected) { if (IsConnected == connected) return; IsConnected = connected; StateChanged?.Invoke(connected); } }