AutoCatAvalonia/AutoCat/Extensions/MathExtension.cs
2024-05-06 01:44:57 +03:00

26 lines
708 B
C#

using System;
using Avalonia.Data;
using Avalonia.Data.Converters;
using Avalonia.Markup.Xaml;
using Avalonia.Markup.Xaml.MarkupExtensions;
namespace AutoCat.Extensions;
public class MathExtension(string path): MarkupExtension
{
public string Path { get; set; } = path;
public double Mult { get; set; } = 1;
public double Add { get; set; } = 0;
public override object ProvideValue(IServiceProvider serviceProvider)
{
var binding = new ReflectionBindingExtension(Path)
{
Mode = BindingMode.OneWay,
Converter = new FuncValueConverter<double, object>(e => e*Mult + Add)
};
return binding.ProvideValue(serviceProvider);
}
}