我正在尝试在加载屏幕时激活状态,但它不起作用。 我做的是,我进入屏幕,右键单击LayoutRoot,然后进入“激活状态”,然后选择我的状态。然后,当我单击这个新生成的[ActivateStateAction]时,我将EventName从MouseLeftButtonDown更改为Loaded。但是,它似乎不起作用。 MouseLeftButtonDown可以工作,但不能加载。我在多个屏幕上尝试了这个(不仅仅是启动屏幕),但它仍然不起作用,任何想法?
答案 0 :(得分:2)
我遇到了同样的问题。
我发现ActivateStateAction已加载,仅在我的第一个屏幕上调用。我导航到的其他屏幕上的类似操作没有调用Loaded事件。
我改变了我的ActivateStateAction以用于所有屏幕上的布局更新操作,但第一个。当新屏幕更新布局时,会触发此事件,现在我的问题已修复。
答案 1 :(得分:1)
我重复了你给的步骤,这对我有用。你没有提到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>