This commit is contained in:
艾竹
2023-03-18 21:44:58 +08:00
parent d97938cc2b
commit 9b3c2633a7
32 changed files with 3229 additions and 77 deletions

View File

@@ -0,0 +1,27 @@
using System;
using System.Globalization;
using System.Windows.Data;
namespace AIStudio.Wpf.DiagramDesigner
{
public class AdditionConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if ((value != null) && (parameter != null))
{
var firstValue = (double)value;
var secondValue = double.Parse(parameter?.ToString());
return firstValue + secondValue;
}
return 0d;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}

View File

@@ -0,0 +1,67 @@
using System;
using System.Globalization;
using System.Text.RegularExpressions;
using System.Windows;
using System.Windows.Data;
namespace AIStudio.Wpf.DiagramDesigner
{
public class GridLengthConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var length = value?.ToString();
try
{
double add = 0;
double.TryParse(parameter?.ToString(), out add);
return new GridLength(double.Parse(length) + add, GridUnitType.Pixel);
}
catch
{
return new GridLength(1, GridUnitType.Auto);
}
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return DependencyProperty.UnsetValue;
}
}
public class GridLengthAutoConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var length = value?.ToString();
try
{
if (Regex.IsMatch(length, @"^\d+(\.\d+)?$"))
{
return new GridLength(double.Parse(length), GridUnitType.Pixel);
}
else if (length == "*")
{
return new GridLength(1, GridUnitType.Star);
}
else if (Regex.IsMatch(length, @"^\d+(\.\d+)?\*$"))
{
return new GridLength(double.Parse(length.Substring(0, length.Length - 1)), GridUnitType.Star);
}
else
{
return new GridLength(1, GridUnitType.Auto);
}
}
catch
{
return new GridLength(1, GridUnitType.Auto);
}
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return DependencyProperty.UnsetValue;
}
}
}