Толщина круглого индикатора - PullRequest
0 голосов
/ 18 декабря 2018

Есть ли способ увеличить толщину индикатора выполнения при использовании кругового стиля?Я не могу найти никакой документации об этом на github.

1 Ответ

0 голосов
/ 19 декабря 2018

Основываясь на ответе Роберта Харви, я нашел лучшее решение.Вместо того, чтобы копировать весь стиль и изменять жестко закодированное значение другим жестко закодированным значением, я создал поведение для изменения значения толщины.

 public class CircularProgressBarBehavior : StyleBehavior<ProgressBar, CircularProgressBarBehavior>
{
    public static readonly DependencyProperty StrokeThicknessProperty =
        DependencyProperty.RegisterAttached("StrokeThickness", typeof(double), typeof(CircularProgressBarBehavior), new PropertyMetadata(3d));

    public static double GetStrokeThickness(DependencyObject dependencyObject)
    {
        return (double) dependencyObject.GetValue(StrokeThicknessProperty);
    }

    protected override void OnAttached()
    {
        base.OnAttached(); 

        // ReSharper disable once CompareOfFloatsByEqualityOperator
        var path = AssociatedObject.GetChildren<Path>().FirstOrDefault(e => e.Name.Equals("Path"));

        if (path != null)
            path.StrokeThickness = GetStrokeThickness(AssociatedObject);
    }

    public static void SetStrokeThickness(DependencyObject dependencyObject, double value)
    {
        dependencyObject.SetValue(StrokeThicknessProperty, value);
    }
}
...