J'essaie d'activer un état lorsque l'écran est chargé mais cela ne fonctionne pas. Qu'est-ce que je fais est, je vais à l'écran, faites un clic droit sur la LayoutRoot puis allez "Activer Etat" et je choisis mon état. Ensuite, quand je clique sur ce [ActivateStateAction] nouvellement généré, je change le nom d'événement de MouseLeftButtonDown à Loaded. Cependant, cela ne semble pas fonctionner. Le MouseLeftButtonDown fonctionne mais pas le Loaded. J'ai essayé ceci sur plusieurs écrans (pas seulement l'écran de démarrage) mais cela ne fonctionne toujours pas, aucune idée?Sketchflow - l'activation de l'état sur le chargement ne fonctionne pas?
Répondre
J'ai répété les étapes que vous avez données et cela a fonctionné pour moi. Vous n'avez pas mentionné SL ou WPF, donc je l'ai essayé dans Silverlight. Peut-être vérifier les propriétés de la réaction active pour être sûr que le nom de l'état cible est correct. Faites-moi savoir si vous ne pouvez toujours pas le faire fonctionner et je peux essayer d'aider à trouver le problème (poster votre xaml). Voici le XAML généré par mes actions:
<UserControl
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" xmlns:pb="clr-namespace:Microsoft.Expression.Prototyping.Behavior;assembly=Microsoft.Expression.Prototyping.Interactivity"
x:Class="SilverlightPrototype2Screens.Screen_1"
Width="640" Height="480">
<Grid x:Name="LayoutRoot" Background="White">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Loaded">
<pb:ActivateStateAction TargetScreen="SilverlightPrototype2Screens.Screen_1" TargetState="VisualState"/>
</i:EventTrigger>
</i:Interaction.Triggers>
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="VisualStateGroup">
<VisualState x:Name="VisualState">
<Storyboard>
<ColorAnimationUsingKeyFrames BeginTime="00:00:00" Duration="00:00:00.0010000" Storyboard.TargetName="rectangle" Storyboard.TargetProperty="(Shape.Fill).(SolidColorBrush.Color)">
<EasingColorKeyFrame KeyTime="00:00:00" Value="Red"/>
</ColorAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Rectangle x:Name="rectangle" Fill="White" Stroke="Black" Height="74" HorizontalAlignment="Left" Margin="171,116,0,0" VerticalAlignment="Top" Width="107" RenderTransformOrigin="0.5,0.5">
<Rectangle.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform/>
<TranslateTransform/>
</TransformGroup>
</Rectangle.RenderTransform>
</Rectangle>
</Grid>
J'ai eu le même problème.
J'ai découvert ActivateStateAction Loaded, qui n'a été appelée que pour mon premier écran. Des actions similaires sur d'autres écrans auxquels j'ai ensuite navigué n'appelaient pas l'événement Loaded.
J'ai changé mon ActivateStateAction pour l'utiliser pour mettre en page l'action mise à jour sur tous les écrans sauf le premier. Cet événement est déclenché lorsqu'un nouvel écran met à jour la mise en page et que mon problème est maintenant résolu.
okay je vais l'essayer plus tard quand je rentre à la maison. J'ai fait de l'animation sur des charges au lieu de cela pour l'instant, ceux qui semblent avoir travaillé mieux pour moi pour une raison quelconque. BTW, excellent produit. ça a été mon nouveau jouet préféré. et oui, j'utilise le projet silverlight sketchflow. – foreyez