将Feature/XP.Common和Feature/XP.Hardware分支合并至Develop/XP.forHardwareAndCommon,完善XPapp注册和相关硬件类库通用类库功能。

This commit is contained in:
QI Mingxuan
2026-04-16 17:31:13 +08:00
parent 6ec4c3ddaa
commit 2bd6e566c3
581 changed files with 74600 additions and 222 deletions
@@ -0,0 +1,115 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Data;
using System.Windows.Media;
using XP.Hardware.RaySource.Abstractions.Enums;
namespace XP.Hardware.RaySource.Converters
{
/// <summary>
/// 射线源状态转背景色转换器(径向渐变)
/// </summary>
public class RaySourceStatusToColorConverter : IValueConverter
{
/// <summary>
/// 状态转颜色(不可用=灰色,关闭=绿色,开启=红色)- 中心渐变效果
/// </summary>
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value is RaySourceStatus status)
{
return status switch
{
RaySourceStatus.Unavailable => CreateRadialGradient(
Color.FromRgb(224, 224, 224), // 中心浅灰
Color.FromRgb(189, 189, 189)), // 边缘深灰
RaySourceStatus.Closed => CreateRadialGradient(
Color.FromRgb(139, 195, 74), // 中心浅绿 #8BC34A
Color.FromRgb(76, 175, 80)), // 边缘深绿 #4CAF50
RaySourceStatus.Opened => CreateRadialGradient(
Color.FromRgb(255, 138, 128), // 中心浅红 #FF8A80
Color.FromRgb(244, 67, 54)), // 边缘深红 #F44336
_ => CreateRadialGradient(
Color.FromRgb(224, 224, 224), // 中心浅灰
Color.FromRgb(189, 189, 189)) // 边缘深灰
};
}
return CreateRadialGradient(
Color.FromRgb(224, 224, 224),
Color.FromRgb(189, 189, 189));
}
/// <summary>
/// 创建径向渐变画刷
/// </summary>
private RadialGradientBrush CreateRadialGradient(Color centerColor, Color edgeColor)
{
var brush = new RadialGradientBrush();
brush.GradientOrigin = new System.Windows.Point(0.5, 0.5);
brush.Center = new System.Windows.Point(0.5, 0.5);
brush.RadiusX = 0.8;
brush.RadiusY = 0.8;
brush.GradientStops.Add(new GradientStop(centerColor, 0.0));
brush.GradientStops.Add(new GradientStop(edgeColor, 1.0));
return brush;
}
/// <summary>
/// 反向转换(无需实现)
/// </summary>
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
/// <summary>
/// 状态转边框色转换器
/// </summary>
public class RaySourceStatusToBorderColorConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value is RaySourceStatus status)
{
return status switch
{
RaySourceStatus.Unavailable => new SolidColorBrush(Color.FromRgb(158, 158, 158)), // 深灰 #9E9E9E
RaySourceStatus.Closed => new SolidColorBrush(Color.FromRgb(46, 125, 50)), // 深绿 #2E7D32
RaySourceStatus.Opened => new SolidColorBrush(Color.FromRgb(198, 40, 40)), // 深红 #C62828
_ => new SolidColorBrush(Color.FromRgb(153, 153, 153))
};
}
return new SolidColorBrush(Color.FromRgb(153, 153, 153));
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
/// <summary>
/// 状态转滑块启用状态转换器
/// </summary>
public class RaySourceStatusToSliderEnabledConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value is RaySourceStatus status)
{
return status == RaySourceStatus.Opened; // 开启时滑块可用,关闭时禁用
}
return false;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}