zoukankan      html  css  js  c++  java
  • WPF 进度条实现

    1、样式

    <Style TargetType="{x:Type ProgressBar}">
    <Setter Property="Maximum" Value="100" />
    <Setter Property="Height" Value="70" />
    <Setter Property="Value" Value="20" />
    <Setter Property="Foreground" Value="#40a2c2"/>
    <Setter Property="SnapsToDevicePixels" Value="True" />
    <Setter Property="Template">
    <Setter.Value>
    <ControlTemplate TargetType="{x:Type ProgressBar}">
    <Grid x:Name="Root">
    <Grid.RowDefinitions>
    <RowDefinition></RowDefinition>
    <RowDefinition Height="35" ></RowDefinition>
    </Grid.RowDefinitions>
    <Grid Grid.Row="0">
    <Canvas Grid.Row="0" Height="38">
    <Canvas x:Name="Tooltip" Canvas.Left="{Binding ActualWidth, ElementName=PART_Indicator,Converter={StaticResource progressBarValueLocationConverter}}">
    <Image x:Name="Shape_5" Height="30" Canvas.Left="4" Canvas.Top="2" Width="60">
    <Image.Effect>
    <DropShadowEffect BlurRadius="3" Color="Black" Direction="-90" Opacity="0.43" ShadowDepth="2"/>
    </Image.Effect>
    </Image>
    <TextBlock Text="{Binding Value, RelativeSource={RelativeSource AncestorType={x:Type ProgressBar}},Converter={StaticResource progressBarValueTextFormatConverter}}" Foreground="#FF0000" FontWeight="Bold" FontSize="30" FontFamily="Helvetica75-Bold" IsHyphenationEnabled="True" LineStackingStrategy="BlockLineHeight" Canvas.Left="13" LineHeight="13" TextAlignment="Left" TextWrapping="Wrap" Canvas.Top="9.56">
    <TextBlock.Effect>
    <DropShadowEffect BlurRadius="0" Color="Black" Direction="-270" Opacity="1" ShadowDepth="1"/>
    </TextBlock.Effect>
    </TextBlock>
    </Canvas>
    </Canvas>
    </Grid>

    <Path Grid.Row="1" x:Name="PART_Track" Data="F1M8,1C8,1 335,1 335,1 338.866,1 342,4.134 342,8 342,11.866 338.866,15 335,15 335,15 8,15 8,15 4.134,15 1,11.866 1,8 1,4.134 4.134,1 8,1z" Canvas.Left="0" Canvas.Top="0">
    <Path.Effect>
    <DropShadowEffect BlurRadius="0" Color="White" Direction="-90" Opacity="0.26" ShadowDepth="1"/>
    </Path.Effect>
    <Path.Fill>
    <SolidColorBrush Color="Black" Opacity="0.23137254901960785"/>
    </Path.Fill>
    </Path>
    <Border Grid.Row="1" x:Name="PART_Indicator" BorderBrush="Transparent" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="3,2,0,0" Height="12" MaxWidth="338" Background="{TemplateBinding Foreground}" CornerRadius="7.5,7.5,7.5,7.5" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"></Border>

    </Grid>
    </ControlTemplate>
    </Setter.Value>
    </Setter>
    </Style>

    2、界面

    <ProgressBar Foreground="Blue" HorizontalAlignment="Center" VerticalAlignment="Center" Value="{Binding CurrentProgress, Mode=OneWay}"
    Visibility="{Binding ProgressVisibility, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>

    3、转换器

    public class ProgressBarValueLocationConverter : IValueConverter
    {

    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
    return ((double)value - 25);
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
    return 0;
    }
    }


    public class ProgressBarValueTextFormatConverter : IValueConverter
    {
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
    return value.ToString() + "%";
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
    throw new NotImplementedException();
    }
    }

  • 相关阅读:
    Python-文件处理
    自动化测试框架(一)
    Turbine Netflix
    java基础笔记-日常问题总结不定期更新
    集合类库上(list,queue)
    日期相关类
    迭代与JDB
    团队组建——日渐消瘦队~
    结对学习感想
    实验一《Java开发环境的熟悉》_实验报告
  • 原文地址:https://www.cnblogs.com/huzige/p/12624393.html
Copyright © 2011-2022 走看看