20230724_MBJC_upperpc/Common/BottomCenterYConverter.cs

60 lines
3.4 KiB
C#
Raw Normal View History

2023-12-20 09:58:16 +00:00
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;
using System.Windows.Media;
namespace _20230724_MBJC_upperpc.Common
{
public class BottomCenterYConverter : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
Point StartPoint = new Point(); ;
Point FirstCorner = new Point(); ;
Point SecondCorner = new Point(); ;
Point EndPoint = new Point(); ;
if (int.Parse(parameter.ToString()) == 1 || int.Parse(parameter.ToString()) == 2)
{
StartPoint = new Point((double)values[0] + (double)values[1] / 2, (double)values[3]);
FirstCorner = new Point((double)values[0] + (double)values[1] / 2, ((double)values[3] + (double)values[6] + (double)values[7]) / 2);
SecondCorner = new Point((double)values[4] + (double)values[5] / 2, ((double)values[3] + (double)values[6] + (double)values[7]) / 2);
EndPoint = new Point((double)values[4] + (double)values[5] / 2, (double)values[6] + (double)values[7]);
}
else if (int.Parse(parameter.ToString()) == 3 || int.Parse(parameter.ToString()) == 4)
{
StartPoint = new Point((double)values[0], (double)values[3] + (double)values[2] / 2);
FirstCorner = new Point(((double)values[0] + (double)values[4] + (double)values[5]) / 2, (double)values[3] + (double)values[2] / 2);
SecondCorner = new Point(((double)values[0] + (double)values[4] + (double)values[5]) / 2, (double)values[7] + (double)values[6] / 2);
EndPoint = new Point((double)values[4] + (double)values[5], (double)values[7] + (double)values[6] / 2);
}
else if (int.Parse(parameter.ToString()) == 5 || int.Parse(parameter.ToString()) == 6)
{
StartPoint = new Point((double)values[0] + (double)values[1], (double)values[3] + (double)values[2] / 2);
FirstCorner = new Point(((double)values[0] + (double)values[1] + (double)values[4]) / 2, (double)values[3] + (double)values[2] / 2);
SecondCorner = new Point(((double)values[0] + (double)values[1] + (double)values[4]) / 2, (double)values[7] + (double)values[6] / 2);
EndPoint = new Point((double)values[4], (double)values[7] + (double)values[6] / 2);
}
else if (int.Parse(parameter.ToString()) == 7 || int.Parse(parameter.ToString()) == 8)
{
StartPoint = new Point((double)values[0] + (double)values[1] / 2, (double)values[3] + (double)values[2]);
FirstCorner = new Point((double)values[0] + (double)values[1] / 2, ((double)values[3] + (double)values[2] + (double)values[7]) / 2);
SecondCorner = new Point((double)values[4] + (double)values[5] / 2, ((double)values[3] + (double)values[2] + (double)values[7]) / 2);
EndPoint = new Point((double)values[4] + (double)values[5] / 2, (double)values[7]);
}
return new PointCollection { StartPoint, FirstCorner, SecondCorner, EndPoint };
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}