【发布时间】:2010-01-12 14:05:34
【问题描述】:
我正在为 WPF ProgressBar 创建一个 XAML 模板。如果将 IsIndeterminate 设置为 False,则以下 XAML 代码可以正常工作:
<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>
指标边框从最小到最大填充了ProgressBar。但是,如果我将IsIndeterminate 设置为True,则指示器边框会填满整个ProgressBar(就像它设置为最大值一样)并且根本没有动画。我尝试过的任何事情都没有改变ProgressBar 的这种行为。
我需要做什么才能获得类似于标准 WPF ProgressBar 中的 IsIndeterminate 动画?
提前致谢
万岁
【问题讨论】:
-
我有点迷茫,当 IsIndeterminate 为真时,你希望你的指示器边框做什么?
-
动画应该像 Windows ProgressBars 中常见的那样从左到右来回运行。
标签: .net wpf xaml animation progress-bar