代码之家  ›  专栏  ›  技术社区  ›  banzai

尝试组合ProgressBar XAML模板时出现IsIndeterminate问题

  •  2
  • banzai  · 技术社区  · 16 年前

    我正在为WPF创建XAML模板 ProgressBar . 如果 IsIndeterminate 设置为 False :

    <ControlTemplate x:Key="DefaultProgressBarTemplate" TargetType="{x:Type ProgressBar}">
        <ControlTemplate.Resources>
            <SolidColorBrush x:Key="SolidBorderBrush" Color="#767676" />
            <LinearGradientBrush x:Key="IndicatorBrush" StartPoint="0,0" EndPoint="1,0">
                <LinearGradientBrush.GradientStops>
                    <GradientStop Color="#BCCF64" Offset="0.5" />
                    <GradientStop Color="#E1FF77" Offset="0.0" />
                </LinearGradientBrush.GradientStops>
            </LinearGradientBrush>
        </ControlTemplate.Resources>
        <Grid MinHeight="14">
            <Border Name="PART_Track" CornerRadius="9" Background="Transparent" BorderBrush="{StaticResource SolidBorderBrush}" BorderThickness="1" SnapsToDevicePixels="True" />
            <Border Name="PART_Indicator" CornerRadius="9" Background="{StaticResource IndicatorBrush}" BorderBrush="{StaticResource SolidBorderBrush}" BorderThickness="1" HorizontalAlignment="Left" SnapsToDevicePixels="True" />
        </Grid>
    </ControlTemplate>
    
    <Style x:Key="{x:Type ProgressBar}" TargetType="{x:Type ProgressBar}">
        <Setter Property="OverridesDefaultStyle" Value="True" />
        <Setter Property="Template" Value="{StaticResource DefaultProgressBarTemplate}" />
    </Style>
    

    指示器边框填充 进度条 从最小到最大,但如果我设置 不确定的 True 指示器边框填充整个 进度条 (就像它被设置为max)并且没有任何动画。我所做的一切都没有改变 进度条 . 我要做什么才能有一个 不确定的 类似于标准WPF中的动画 进度条 ?

    提前谢谢

    班扎

    1 回复  |  直到 15 年前
        1
  •  2
  •   Ray Burns    16 年前

    ProgressBar 用于显示整个指示器 IsIndeterminate="true" . WPF内置 进度条 无论何时,样式都会用动画画笔替换指示器颜色。 isinsdeterminate=“真” 使你观察到的效果。你也可以这么做。只需在上使用属性触发器 isinsdeterminate=“真” 并将画笔设置为您正在设置其颜色动画的画笔。另一个选项是创建由 isinsdeterminate=“真” 如果你想要不同的效果。

    您可以使用net reflector工具及其bamlviewer插件来查看内置样式。安装Expression Blend时,原始源文件也会复制到硬盘上,甚至是评估版,因此安装Expression Blend是查看内置样式的XAML的另一种方法。看看里面 C:\Program Files\Microsoft Expression\Blend 2\SystemThemes 目录。

    推荐文章