2011-05-26 88 views
1

当Popup的IsOpen属性设置为True时如何开始StoryBoard?当Popup的IsOpen属性设置为True时开始StoryBoard

例如:

<EventTrigger RoutedEvent="{Binding IsOpen, ElementName=pop}"> 
    <BeginStoryboard> 
     <Storyboard> 
      <DoubleAnimation Storyboard.TargetName="pop" 
          Storyboard.TargetProperty="Height" 
          Duration="0:0:1" 
          From="0.0" 
          To="200" /> 
      <DoubleAnimation Storyboard.TargetName="pop" 
          Storyboard.TargetProperty="Width" 
          Duration="0:0:1" 
          From="0.0" 
          To="{Binding ElementName=root,Path=ActualWidth}" /> 
     </Storyboard> 
    </BeginStoryboard> 
</EventTrigger> 

我知道EventTrigger RoutedEvent="{Binding IsOpen, ElementName=pop}是不正常

谢谢!

+0

请停止用Visual-Studio标记所有内容,问题与它无关。 – 2011-05-27 00:03:02

回答

1

既然你没有标记答案,我认为你仍然需要一些帮助。 下面的代码片段,将你的工作方式(按HB的职位)

<Window x:Class="WpfTestApp.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="MainWindow" Height="350" Width="525"> 
<Window.Resources> 
    <Style x:Key="PopupStyle" TargetType="{x:Type Popup}"> 
     <Style.Triggers> 
      <Trigger Property="IsOpen" Value="True"> 
       <Trigger.EnterActions> 
        <BeginStoryboard> 
         <Storyboard> 
          <DoubleAnimation 
            Storyboard.TargetProperty="Height" 
            Duration="0:0:1" 
            From="0.0" 
            To="200" /> 
          <DoubleAnimation 
            Storyboard.TargetProperty="Width" 
            Duration="0:0:1" 
            From="0.0" 
            To="500" /> 
         </Storyboard> 
        </BeginStoryboard> 
       </Trigger.EnterActions> 
      </Trigger> 
     </Style.Triggers> 

    </Style> 
</Window.Resources> 
<Grid> 
    <Button Content="Button" Height="29" HorizontalAlignment="Left" Margin="24,19,0,0" Name="button1" VerticalAlignment="Top" Width="90" Click="button1_Click" /> 
    <Popup Name="pop" Style="{StaticResource PopupStyle}" > 
     <Grid Background="Red"> 
      <TextBlock Text="I am in pop up" /> 
     </Grid> 
    </Popup> 
</Grid> 

,并在后面打开弹出代码按钮单击事件处理..

private void button1_Click(object sender, RoutedEventArgs e) 
    { 
     pop.PlacementTarget = (Button)sender; 
     pop.IsOpen = true; 
    } 
+0

非常感谢!!!!!! – christiangobo 2011-05-27 21:02:19

2
  1. 为Popup创建一个Style
  2. TriggerIsOpen - >true
  3. 使用Trigger.EnterActions开始故事板。
+0

我想我忘了利润... – 2011-05-26 23:59:45

+0

谢谢!它有可能解释它吗? – christiangobo 2011-05-27 00:03:17

+0

解释一下什么?请阅读文档,我不认为这里有任何解释.. – 2011-05-27 00:04:04

相关问题