2012-11-02 91 views
0

我是新来使用WPF故事板,这里是我的代码:WPF故事板事件绑定

<StackPanel> 

    <Border Grid.Row="0" Background="Black" Height="40" Name="Border1"></Border> 

    <Grid Height="0" Name="MyGrid" Background="Green"> 
     <Grid.Triggers> 
      <EventTrigger RoutedEvent="UserControl.Loaded"> 
       <BeginStoryboard> 
        <Storyboard> 
         <DoubleAnimation Storyboard.TargetName="MyGrid" 
        Storyboard.TargetProperty="Height" From="0" To="40" 
        Duration="0:0:1" BeginTime="0:0:0"/> 
        </Storyboard> 
       </BeginStoryboard> 
      </EventTrigger> 
     </Grid.Triggers> 
    </Grid> 

</StackPanel> 

我想改变触发故事板开始Border1.MouseEnter事件。

这可能吗?

感谢名单

回答

1

在这种情况下,你应该触发器移动到边境控制:

<StackPanel> 

<Border Grid.Row="0" Background="Black" Height="40" Name="Border1"> 
    <Border.Triggers> 
     <EventTrigger RoutedEvent="Border.MouseEnter"> 
      <BeginStoryboard> 
       <Storyboard> 
        <DoubleAnimation Storyboard.TargetName="MyGrid" 
         Storyboard.TargetProperty="Height" From="0" To="40" 
         Duration="0:0:1" BeginTime="0:0:0"/> 
       </Storyboard> 
      </BeginStoryboard> 
     </EventTrigger> 
    </Border.Triggers> 
</Border> 

<Grid Height="0" Name="MyGrid" Background="Green"> 

</Grid> 

+0

哇,不敢相信我没想到!但就像我说的那是我第一次尝试。感谢名单! –

0

我真的没有尝试,但这应该工作:

<StackPanel> 
<StackPanel.Triggers> 
    <EventTrigger RoutedEvent="Mouse.MouseEnter" SourceName="Border1"> 
     <BeginStoryboard> 
      <Storyboard> 
       <DoubleAnimation Storyboard.TargetName="MyGrid" 
        Storyboard.TargetProperty="Height" From="0" To="40" 
        Duration="0:0:1" BeginTime="0:0:0"/> 
      </Storyboard> 
     </BeginStoryboard> 
    </EventTrigger> 
</StackPanel.Triggers> 
     <Border Grid.Row="0" Background="Black" Height="40" Name="Border1"></Border> 
     <Grid Height="0" x:Name="MyGrid" Background="Green" VerticalAlignment="Bottom"/> 
</StackPanel> 
+0

这将不起作用,因为如果您使用SourceName,则边框必须是网格的子节点。 – Sukram

+0

是的。对不起。我修好了,但我迟到了;)谢谢 –