26 lines
708 B
C#
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);
|
|
}
|
|
} |