我是silverlight的新手,我想在故事板完成或结束时触发一个事件。我将如何继续这样做。在鼠标输入时,我已经在情节提要中有一个触发器。我不确定是否可以在那里添加更多活动。谢谢
1 回答
使用“StoryBoardComplete”行为。您可以在“行为”下的“资产”面板中找到它。
编辑:对不起,我从记忆中匆忙地回答错误。当您说您是 Silverlight 的新手时,我应该提供更多详细信息,并且我应该验证我的答案。
更正答案:对行为使用“StoryboardCompletedTrigger”。假设您想在 Storyboard 完成时更改 Rectangle 的 Fill 属性。向您的应用程序添加一个矩形:
转到资产面板(与项目面板相同的选项卡组)。打开标题为“行为”的类别并找到“ChangePropertyAction”。
将一个拖放到矩形上。对象和时间线现在看起来像这样:
请注意,已选择 ChangePropertyAction 项。现在转到“属性”面板:
在触发器部分,单击我为您突出显示的“新建”按钮。这将打开一个对话框,让您选择不同的 TriggerType。在这种情况下,您需要一个“StoryboardCompletedTrigger”:
填写 Storyboard 和 PropertyName 值。
现在,当 Storyboard1 完成 Rectangle 的 Fill 属性时,应该变为 Red。这是这个简单示例的完整 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" xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions" mc:Ignorable="d"
x:Class="SilverlightApplication2.MainPage"
Width="640" Height="480">
<UserControl.Resources>
<Storyboard x:Name="Storyboard1">
<DoubleAnimation Duration="0:0:0.9" To="-360" Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.Rotation)" Storyboard.TargetName="rectangle" d:IsOptimized="True"/>
</Storyboard>
</UserControl.Resources>
<Grid x:Name="LayoutRoot" Background="White">
<Rectangle x:Name="rectangle" Fill="#FF0000F7" HorizontalAlignment="Left" Margin="86,133,0,225" Stroke="Black" Width="210" RenderTransformOrigin="0.5,0.5">
<Rectangle.RenderTransform>
<CompositeTransform/>
</Rectangle.RenderTransform>
<i:Interaction.Triggers>
<ei:StoryboardCompletedTrigger Storyboard="{StaticResource Storyboard1}">
<ei:ChangePropertyAction PropertyName="Fill">
<ei:ChangePropertyAction.Value>
<SolidColorBrush Color="Red"/>
</ei:ChangePropertyAction.Value>
</ei:ChangePropertyAction>
</ei:StoryboardCompletedTrigger>
</i:Interaction.Triggers>
</Rectangle>
<Button Content="Button" HorizontalAlignment="Left" Height="50" Margin="86,0,0,98" VerticalAlignment="Bottom" Width="110">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<ei:ControlStoryboardAction Storyboard="{StaticResource Storyboard1}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
</Grid>
YMMV:此方法用于行为。在不了解您的情况的情况下,我无法提出更好的建议,但这是实现您想要的典型方法。