Кастомный ProgresBar WPF

105
10 сентября 2021, 13:20

Помогите сделать кастомный ProgressBar прочитал этот и этот пост дело в том, что мне нужен ProgressBar не совсем правильной(круглой) формы

это xaml будущего ProgressBar

  <Path
     Data="M449.23438,366.5625 L467.47438,376.5425 C444.66025,422.18786 431.48069,469.97556 427.84939,519.88642 L406.61504,519.88642 C411.03924,464.08389 425.14082,412.9256 449.23438,366.5625 z"
     Stretch="Fill"
     Stroke="White" />

ProgressBar 0%

ProgressBar 80%

Answer 1

Сделал костыльный вариант, для моих целей подходит

xaml

<UserControl Name="PrBar">
<Grid>
  <Path
        Width="59.419"
        Height="154.047"
        Margin="36.531,0,0,0"
        HorizontalAlignment="Left"
        VerticalAlignment="Bottom"
        Data="M248.0625,203.3125 C226.50766,246.55013 213.87989,293.72255 209.65417,344.59833 L189.64323,344.65545 C193.8575,290.18792 207.25521,238.96503 231.5968,191.60875 z"
        Stretch="Fill"
        Stroke="White" >
        <Path.Fill>
            <LinearGradientBrush>
                <LinearGradientBrush.RelativeTransform>
                    <TransformGroup>
                        <ScaleTransform CenterX="0.5" CenterY="0.5" />
                        <SkewTransform CenterX="0.5" CenterY="0.5" />
                        <RotateTransform Angle="{Binding ElementName=PrBar, Path=AnglePRM}" CenterX="0.5" CenterY="0.5" />
                        <TranslateTransform />
                    </TransformGroup>
                </LinearGradientBrush.RelativeTransform>
                <GradientStop Offset="{Binding ElementName=PrBar, Path=GradientPRM}" Color="OrangeRed" />
                <GradientStop Offset="{Binding ElementName=PrBar, Path=GradientPRM}" Color="Transparent" />
            </LinearGradientBrush>
        </Path.Fill>
    </Path>    
  </Grid> 
</UserControl>

cs

public partial class ProgBar : UserControl
{
    public ProgBar()
    {
        InitializeComponent();
    }
    public static DependencyProperty ValuePRMProperty = DependencyProperty.Register("ValuePRM", typeof(double),
                         typeof(ProgBar), new FrameworkPropertyMetadata(OnValuePRMChanged));
    protected static DependencyProperty AnglePRMProperty = DependencyProperty.Register("AnglePRM",
                        typeof(double), typeof(ProgBar));
    protected static DependencyProperty GradientPRMProperty = DependencyProperty.Register("GradientPRM",
                     typeof(double), typeof(ProgBar));
    static void OnValuePRMChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
    {
        var myProgress = (ProgBar)d;
        var value = (double)e.NewValue;
        if (value >= 100)
            value = 100;
        if (value <= 0)
            value = 0;
        myProgress.GradientPRM = value * 0.01;
        myProgress.AnglePRM = myProgress.GradientPRM * 13 - 172;
    }
    public double ValuePRM
    {
        get => (double)GetValue(ValuePRMProperty);
        set => SetValue(ValuePRMProperty, value);
    }
    protected double AnglePRM
    {
        get => (double)GetValue(AnglePRMProperty);
        set => SetValue(AnglePRMProperty, value);
    }
    protected double GradientPRM
    {
        get => (double)GetValue(GradientPRMProperty);
        set => SetValue(GradientPRMProperty, value);
    }
  }
}

Управляя заливкой, получаю эффект заполнения, AnglePRM - отвечает за правильный угол заливки

READ ALSO
TypeError: Cannot read property &#39;length&#39; of undefined

TypeError: Cannot read property 'length' of undefined

помогите разобраться в следующем плс: на данный момент настроил пагинацию и сортировку, но для некоторыx условий, которые я задаю в ангуляре...

84
C# шаблон проверка типа T

C# шаблон проверка типа T

Есть такой Метод

108
Можно ли конвертировать дамп базы данных SQlite в MySQL?

Можно ли конвертировать дамп базы данных SQlite в MySQL?

Есть дамп базы SQlite, мне нужно получить скрипт для создания такой же базы данных с полями и тд, для MySqlДамп я сделал, заменил в нем AUTOINCREMENT на AUTO_INCREMENT

96