Sketchflow - активация состояния при загрузке не работает?
Я пытаюсь активировать состояние при загрузке экрана, но это не работает. Что я делаю, я иду на экран, щелкните правой кнопкой мыши LayoutRoot и затем перейдите "Активировать состояние", и я выбираю свое состояние. Затем, когда я щелкаю по этому недавно созданному [ActivateStateAction], я изменяю EventName с MouseLeftButtonDown на Loaded. Тем не менее, это не похоже на работу. MouseLeftButtonDown работает, но не загружается. Я пробовал это на нескольких экранах (не только на экране запуска), но все равно не работает, есть идеи?
2 ответа
У меня такая же проблема.
Я обнаружил, что ActivateStateAction Loaded был вызван только для моего первого экрана. Подобные действия на других экранах, на которые я затем перешел, не вызывали событие Loaded.
Я изменил свой ActivateStateAction, чтобы использовать его для действия "Макет обновлен" на всех экранах, кроме первого. Это событие вызывается, когда новый экран обновляет макет, и теперь моя проблема исправлена.
Я повторил шаги, которые вы дали, и это сработало для меня. Вы не упомянули SL или WPF, поэтому я попробовал это в Silverlight. Возможно, проверьте свойства activatestateaction, чтобы убедиться, что имя целевого состояния правильное. Дайте мне знать, если вы все еще не можете заставить его работать, и я могу попытаться помочь найти проблему (опубликуйте свой xaml). Вот xaml, сгенерированный моими действиями:
<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>