61 lines
3.5 KiB
C#
61 lines
3.5 KiB
C#
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] + (double)values[2] / 2);
|
|
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] / 2 + (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 };
|
|
//return new PointCollection { StartPoint, EndPoint };
|
|
}
|
|
|
|
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
}
|
|
}
|