WPF编程,进度条的一种修改样式的简单方法。

参考地址:https://www.cnblogs.com/smiler/p/3282887.html

效果:

增加using System.Windows.Forms;

前台:

    <Window.Resources>
     
        <Style TargetType="{x:Type ProgressBar}">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type ProgressBar}">
                        <Grid MinHeight="14"
                              MinWidth="200">
                            <Border Name="PART_Track"
                                    CornerRadius="10"
                                    BorderBrush="Black"
                                    BorderThickness="1"
                                    Background="#FF57C7C9" />
                            <Border x:Name="PART_Indicator"
                                    CornerRadius="10"
                                    BorderBrush="Red"
                                    BorderThickness="1"
                                    HorizontalAlignment="Left">
                                <Border.Background>
                                    <LinearGradientBrush EndPoint="0.5,1"
                                                         StartPoint="0.5,0">
                                        <GradientStop Color="Orange"
                                                      Offset="0" />
                                        <GradientStop Color="Yellow"
                                                      Offset="0.5" />
                                        <GradientStop Color="Orange"
                                                      Offset="1" />
                                    </LinearGradientBrush>
                                </Border.Background>
                            </Border>
                        </Grid>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </Window.Resources>
    <Grid>
        <StackPanel>
            <TextBlock x:Name="tb"
                       Height="23"></TextBlock>
            <ProgressBar x:Name="pb"
                         Minimum="0"
                         Maximum="100"
                         Height="20"></ProgressBar>
            <Button Content="click" 
                    Width="72"
                    Height="23"
                    Click="Button_Click_1"></Button>
        </StackPanel>
 
    </Grid>

后台:

 private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            Thread thread = new Thread(new ThreadStart(() =>
            {
                for (int i = 1; i <= 100; i++)
                {
                    pb.Dispatcher.Invoke(new MethodInvoker(() => pb.Value = i));
                    tb.Dispatcher.Invoke(new MethodInvoker(() => tb.Text = i + "%"));
                    Thread.Sleep(200);
                }
            }));
            thread.Start();
     
        }

猜你喜欢

转载自blog.csdn.net/qq_43307934/article/details/86495480