using HxEnum;
using System;
using System.Configuration;
using System.Globalization;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using XCommon;
using XImagingXhandler.XDAL;
namespace XHandler.Class
{
public class CmdBackgroundConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
int nVal = int.Parse((string)value);
switch (nVal)
{
case 1:
return new SolidColorBrush(Color.FromArgb(255, 252, 241, 219));
case 2:
return new SolidColorBrush(Color.FromArgb(255, 223, 244, 255));
case 3:
return new SolidColorBrush(Color.FromArgb(255, 226, 255, 221));
case 4:
return new SolidColorBrush(Color.FromArgb(255, 255, 232, 245));
case 5:
return new SolidColorBrush(Color.FromArgb(255, 239, 247, 255));
case 6:
return new SolidColorBrush(Color.FromArgb(255, 255, 217, 216));
default:
return new SolidColorBrush(Color.FromArgb(255, 242, 242, 242));
}
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return null;
}
}
///
/// Todo 暂未使用
///
public class CmdIconConvert : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
string icon = (string)value;
string iconPath = "pack://application:,,,./Assets/CmdSet/"+icon;
return (ImageSource)new ImageSourceConverter().ConvertFrom(new Uri(iconPath));
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return null;
}
}
public class IntToVisibleConvert : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
int val = (int)value;
if (val == 1)
return Visibility.Visible;
else
return Visibility.Collapsed;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return null;
}
}
public class BoolToBackgroundConvert : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
bool val = (int)value == 1 ? true:false;
if (val)
return Brushes.LightGreen;
else
return Brushes.Transparent;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return null;
}
}
public class IntToEnableConvert : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
int val = (int)value;
if (val == 1)
return false;
else
return true;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return null;
}
}
public class PercentageConverter : IValueConverter
{
public object Convert(object value,
Type targetType,
object parameter,
System.Globalization.CultureInfo culture)
{
return System.Convert.ToDouble(value) *
System.Convert.ToDouble(parameter);
}
public object ConvertBack(object value,
Type targetType,
object parameter,
System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
public class ColorConvert : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
string strColor = (string)value;
Color color = ComUtility.RGBToColor(strColor);
//Color color = (Color)ColorConverter.ConvertFromString(strColor);
return color;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return null;
}
}
public class LeverToThicknessConvert : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
int level = (int)value;
int left = level * 40;
Thickness thickness = new Thickness(0,0,0,0);
thickness.Left = left;
return thickness;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return null;
}
}
public class BrushTypeConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value == null)
return null;
//PropertyInfo propertyInfo = value as PropertyInfo;
//return propertyInfo.GetValue(value) as SolidColorBrush;
BrushItem item = value as BrushItem;
return item.Value;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return null;
}
}
public class EnableToBrush : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
bool enable = (bool)value;
if (enable)
return Brushes.Black;
else
return Brushes.Gray;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return null;
}
}
public class CmdBackgroundMultiConverter : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
int methodGroupId = int.Parse(values[0].ToString());
int support = int.Parse(values[1].ToString());
// 不支持
if (support == EnumManagement.GetEnumValue(MethodSupportEnum.NoSupport))
{
return new SolidColorBrush(Colors.LightGray);
}
// 1:单步液体处理
if (methodGroupId == EnumManagement.GetEnumValue(MethodGroupEnum.SingleStep))
{
return new SolidColorBrush(Color.FromArgb(255, 252, 241, 219));
}
// 2:组合液体处理
else if (methodGroupId == EnumManagement.GetEnumValue(MethodGroupEnum.MultiSteps))
{
return new SolidColorBrush(Color.FromArgb(255, 223, 244, 255));
}
// 3:抓手命令
else if (methodGroupId == EnumManagement.GetEnumValue(MethodGroupEnum.GripperCommand))
{
return new SolidColorBrush(Color.FromArgb(255, 226, 255, 221));
}
// 4:控制命令
else if (methodGroupId == EnumManagement.GetEnumValue(MethodGroupEnum.ControlCommand))
{
return new SolidColorBrush(Color.FromArgb(255, 255, 232, 245));
}
// 5:数据处理
else if (methodGroupId == EnumManagement.GetEnumValue(MethodGroupEnum.DataProcess))
{
return new SolidColorBrush(Color.FromArgb(255, 239, 247, 255));
}
// 6:第三方设备
else if (methodGroupId == EnumManagement.GetEnumValue(MethodGroupEnum.ThirdPart))
{
return new SolidColorBrush(Color.FromArgb(255, 255, 217, 216));
}
else
{
return new SolidColorBrush(Color.FromArgb(255, 242, 242, 242));
}
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
return null;
}
}
public class CmdIconMultiConvert : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
string icon = values[0].ToString();
string support = values[1]==null?"" : values[1].ToString();
int methodGroupId = int.Parse(values[2].ToString());
if (string.IsNullOrEmpty(icon))
return null;
// 第三方设备的图片由Base64字符串转换
if (methodGroupId == EnumManagement.GetEnumValue(MethodGroupEnum.ThirdPart))
{
// 字符串转Image
return ComUtility.StringToImag(icon);
}
else
{
string iconPath = "pack://application:,,,./Assets/CmdSet/" + icon;
if (support == "0")
{
string name = System.IO.Path.GetFileNameWithoutExtension(icon);
string ext = System.IO.Path.GetExtension(icon);
iconPath = "pack://application:,,,./Assets/CmdSet/" + name + "disable" + ext;
}
Uri uri = new Uri(iconPath, UriKind.Absolute);
BitmapImage bitmap = new BitmapImage(uri);
return bitmap;
}
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
var splitValues = ((string)value).Split(' ');
return splitValues;
}
}
public class WorkflowIconMultiConvert : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
string icon = values[0].ToString();
bool enable = (bool)values[1];
int methodGroupId = int.Parse(values[2].ToString());
// 第三方设备的图片由Base64字符串转换
if (methodGroupId == EnumManagement.GetEnumValue(MethodGroupEnum.ThirdPart))
{
// 字符串转Image
return ComUtility.StringToImag(icon);
}
else
{
string iconPath = "pack://application:,,,./Assets/CmdSet/" + icon;
if (!enable)
{
string name = System.IO.Path.GetFileNameWithoutExtension(icon);
string ext = System.IO.Path.GetExtension(icon);
iconPath = "pack://application:,,,./Assets/CmdSet/" + name + "disable" + ext;
}
Uri uri = new Uri(iconPath, UriKind.Absolute);
BitmapImage bitmap = new BitmapImage(uri);
return bitmap;
}
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
var splitValues = ((string)value).Split(' ');
return splitValues;
}
}
///
/// true则隐藏,false则显示
///
public class IsLastItemConverter : IMultiValueConverter
{
#region IValueConverter 成员
public object Convert(object[] value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
ContentControl contentPresenter = value[0] as ContentControl;
ItemsControl itemsControl = ItemsControl.ItemsControlFromItemContainer(contentPresenter);
bool flag = false;
if (itemsControl != null)
{
int index = itemsControl.ItemContainerGenerator.IndexFromContainer(contentPresenter);
flag = (index == (itemsControl.Items.Count - 1));
}
return flag;
}
public object[] ConvertBack(object value, Type[] targetType, object parameter, System.Globalization.CultureInfo culture)
{
return null;
}
#endregion
}
public class AutoManulaConvert : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
string val = value.ToString();
if (val == "0")
return Properties.Resources.strAuto;
else
return Properties.Resources.strManual;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return null;
}
}
public class PickModeStringConvert : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
bool val = (bool)value;
if (val)
return Properties.Resources.strManualAdded;
else
return Properties.Resources.strImagingSystem;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return null;
}
}
public class YesNoStringConvert : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
bool val = (bool)value;
if (val)
return Properties.Resources.strYes;
else
return Properties.Resources.strNo1;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return null;
}
}
public class ExecResultStringConvert : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
int val = (int)value;
if (val == 0)
return Properties.Resources.strFailed;
else
return Properties.Resources.strSuccess;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return null;
}
}
public class MethodBackgroundConvert : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
int error = (int)value;
if (error == 1)//有错
return new SolidColorBrush(Color.FromArgb(0x30, 0xFF, 0,0));
if (error == 2)//运行时
return new SolidColorBrush(Color.FromArgb(0xFF, 0x80, 0xFF, 0x80));
else
return Brushes.White;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return null;
}
}
public class MethodSelectedBackgroundConvert : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
int error = (int)value;
if (error == 1)//有错
{
return new SolidColorBrush(Color.FromArgb(0x30, 0xFF, 0, 0));
}
else if (error == 0)//正常
{
return new SolidColorBrush(Color.FromArgb(0xFF, 0xDB, 0xEC, 0xFF));
}
else if (error == 2)//运行过
{
return new SolidColorBrush(Color.FromArgb(0xFF, 0x80, 0xFF, 0x80));
}
else
{
return new SolidColorBrush(Color.FromArgb(0xFF, 0xDB, 0xEC, 0xFF));
}
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return null;
}
}
///
/// 已运行的节点颜色
///
public class MethodRanBackgroundConvert : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
bool error = (bool)value;
if (error)
{
return new SolidColorBrush(Color.FromRgb(0xFF, 0, 0));
}
else
{
return new SolidColorBrush(Color.FromRgb(0x90, 0xEE, 0x90));
}
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return null;
}
}
///
/// 图片Base64字符串转换器
///
public class Base64ToImage : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
// 字符串转Image
var base64String = (String)value;
return ComUtility.StringToImag(base64String);
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
public class StatusToStringConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
int val = System.Convert.ToInt32(value.ToString());
int nVal = val;
switch (nVal)
{
case 0:
return Properties.UserResource.strLock;
case 1:
return Properties.UserResource.strNormal;
default:
return "";
}
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return null;
}
}
}