AutoCatAvalonia/AutoCat/Extensions/ThicknessExtension.cs

27 lines
724 B
C#

using System;
using Avalonia;
using Avalonia.Data;
using Avalonia.Data.Converters;
using Avalonia.Markup.Xaml;
using Avalonia.Markup.Xaml.MarkupExtensions;
namespace AutoCat.Extensions;
public class ThicknessExtension: MarkupExtension
{
public string Path { get; set; }
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 => new Thickness( e*Mult + Add))
};
return binding.ProvideValue(serviceProvider);
}
}