0

我是silverlight的新手,我甚至想要在故事板完成或結束時觸發一個事件。我將如何繼續這樣做。在鼠標輸入框中,我已經有了一個觸發器。我不確定是否可以在那裏添加更多活動。 謝謝在故事板結束時觸發事件

+0

我認爲它的stroyboard.complete – Autolycus 2011-12-20 00:54:56

+0

但我不知道如何使用它 – Autolycus 2011-12-20 00:55:05

回答

6

使用「StoryBoardComplete」行爲。您可以在「行爲」下的「資源」面板中找到它。

編輯:對不起,我從內存中趕時間和不正確的回答。當你說你是Silverlight的新手時,我應該提供更多的細節,並且我應該驗證我的答案。

更正的答案: 對行爲使用「StoryboardCompletedTrigger」。假設您想在Storyboard完成時更改Rectangle的Fill屬性。一個矩形添加到應用程序:

enter image description here

轉到資源面板(同一選項卡組作爲項目面板)。打開標題爲「行爲」的類別並找到「ChangePropertyAction」。

enter image description here

拖放一個到矩形。對象和時間線現在看起來像這樣:

enter image description here

注意,ChangePropertyAction項目被選中。現在去屬性面板:

enter image description here

在觸發區,點擊「新建」按鈕,我已經特別爲您準備。這將打開一個對話框,讓你選擇不同的TriggerType。在這種情況下,你希望有一個「StoryboardCompletedTrigger」:

enter image description here

填寫故事板和屬性名的值。

enter image description here

現在,當Storyboard1完成了矩形的填充屬性應更改爲紅色。下面是這個簡單的例子compelte 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> 

因人而異:這種方法是與行爲使用。如果不知道你的情況,我不能提出更好的建議,但這是實現你想要的典型方法。