Я получил следующий ProgressBar
стиль:IsIndeterminate ProgressBar Шаблон
<Style x:Key="{x:Type ProgressBar}" TargetType="{x:Type ProgressBar}">
<Setter Property="Background" Value="{StaticResource ControlBackground}" />
<Setter Property="BorderBrush" Value="{StaticResource ActiveControlBorderBrush}" />
<Setter Property="BorderThickness" Value="1" />
<Setter Property="FocusVisualStyle" Value="{x:Null}" />
<Setter Property="MinHeight" Value="23" />
<Setter Property="MinWidth" Value="75" />
<Setter Property="OverridesDefaultStyle" Value="True" />
<Setter Property="SnapsToDevicePixels" Value="True" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ProgressBar}">
<Grid MinHeight="{TemplateBinding MinHeight}"
MinWidth="{TemplateBinding MinWidth}">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Determinate" />
<VisualState x:Name="Indeterminate">
<Storyboard>
<ObjectAnimationUsingKeyFrames Duration="00:00:00"
Storyboard.TargetName="PART_Indicator"
Storyboard.TargetProperty="Background">
<DiscreteObjectKeyFrame KeyTime="00:00:00">
<DiscreteObjectKeyFrame.Value>
<SolidColorBrush>Transparent</SolidColorBrush>
</DiscreteObjectKeyFrame.Value>
</DiscreteObjectKeyFrame>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Border x:Name="PART_Track"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}" />
<Border x:Name="PART_Indicator"
Background="{TemplateBinding BorderBrush}"
HorizontalAlignment="Left" />
<Grid x:Name="Animation" ClipToBounds="True">
<Border x:Name="PART_GlowRect"
Width="100"
Background="{StaticResource ActiveControlBorderBrush}"
HorizontalAlignment="Left"
Margin="-100,0,0,0" />
</Grid>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Если я поставил IsIndeterminate
в True
на ProgressBar
; Я вижу Indicator
, двигаясь в designer
, но не на runtime
. Кто-нибудь знает, почему он не работает на runtime
?
EDIT:
с помощью Visual Studio Professional 2012/Приложение является WPF .NET 3.5
Пустой 'window' с только' progressbar' и этот стиль в 'resourcedictionary'. Окно не замерзает. Странный; он работает в дизайнере. – majk86
Ну, глупый вопрос: есть ли у свойства IsIntermediate значение true? :) Это работает без стиля? –
Да, из-за этого он установлен. Как я сказал; он работает в 'designer', но не на' runtime'. Пробовал перемещение стиля из 'resourcedictionary'. Попробовал заменить 'VSM' на' trigger'. По умолчанию 'progressbar' без' style' работает. – majk86