Je dois créer un contrôle de pourcentage de chargeur. J'ai créé un contrôle de deux Arc. Un arc est pour le fond et un pour le premier plan. Je vais donner l'angle final comme une entrée à l'Arc. J'ai écrit une classe d'animation double pour effectuer l'animation de chargement. Quand j'ai essayé d'invoquer le story-board dans le code derrière, l'animation fonctionne.PropertyChangedTrigger dans WP8 ne fonctionne pas
Mais mon exigence est, chaque fois qu'une propriété change, j'ai besoin de charger le chargeur. J'ai donc décidé d'utiliser PropertyChangedBehaviour. Mais l'animation ne fonctionne pas. S'il vous plaît suggérer la meilleure façon de le faire
Voici le code XAML:
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="ValueStates">
<VisualState x:Name="On">
<Storyboard x:Name="storyBoard2">
<DoubleAnimation Duration="0:0:9" To="270" Storyboard.TargetProperty="(Arc.EndAngle)" Storyboard.TargetName="TimerProgressBar">
<DoubleAnimation.EasingFunction>
<ExponentialEase EasingMode="EaseOut"/>
</DoubleAnimation.EasingFunction>
</DoubleAnimation>
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Grid Grid.Row="1"
Background="Transparent"
HorizontalAlignment="Center"
VerticalAlignment="Top"
Margin="0 40 0 0">
<i:Interaction.Triggers>
<ec:PropertyChangedTrigger Binding="{Binding EndAngleValue}">
<ec:GoToStateAction StateName="On"/>
</ec:PropertyChangedTrigger>
</i:Interaction.Triggers>
<es:Arc ArcThickness="1"
Fill="{StaticResource OlaTextLightGrayBrush}"
ArcThicknessUnit="Pixel"
Stretch="None"
Stroke="{StaticResource OlaTextLightGrayBrush}"
StartAngle="0"
EndAngle="360"
UseLayoutRounding="False"
Width="297"
Height="297" />
<es:Arc ArcThickness="4"
Fill="{StaticResource OlaGreenBrush}"
x:Name="TimerProgressBar"
ArcThicknessUnit="Pixel"
Stretch="None"
StartAngle="0"
UseLayoutRounding="False"
Width="300"
Height="300" VerticalAlignment="Bottom" d:LayoutOverrides="Height" >
<es:Arc.Stroke>
<SolidColorBrush
Color="{StaticResource OlaGreen}"/>
</es:Arc.Stroke>
</es:Arc>
Mon Voir Modèle:
public double EndAngleValue
{
get
{
return _EndAngleValue;
}
set
{
SetProperty(ref _EndAngleValue, value);
}
}
Chaque fois que la propriété 'changements' EndAngleValue, je dois effectuer l'animation.
Toute suggestion est appréciée
Avez-vous mis en œuvre 'INotifyPropertyChanged' dans le modèle de vue? –
Votre 'VisualStateManager' est-il défini à la racine du contrôle? – thumbmunkeys
Oui Le gestionnaire d'état visuel est défini à la racine. –