2013-07-12 69 views

回答

1

你可以團例如柵格在容器中的按鈕,然後動畫容器。

另一種方法是將動畫放入樣式中,並將樣式應用於按鈕,或者通過設置每個按鈕的樣式顯式設置,或者通過在按鈕的父級中設置按鈕的默認樣式來隱式設置樣式容器)

下面是一個使用樣式的例子。

不幸的是,窗口的加載事件被一再呼籲讓動畫不斷持續。我看到的唯一解決方案是在第一次後設置布爾值,並防止動畫再次出現。

<Window x:Class="WpfApplication3.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"> 
    <Grid> 
     <Grid HorizontalAlignment="Center" 
       VerticalAlignment="Center"> 
      <Grid.RowDefinitions> 
       <RowDefinition Height="auto" /> 
       <RowDefinition Height="auto" /> 
       <RowDefinition Height="auto" /> 
      </Grid.RowDefinitions> 
      <Grid.Resources> 
       <Style TargetType="Button"> 
        <Setter Property="Width" 
          Value="150" /> 
        <Setter Property="Padding" 
          Value="15" /> 
        <Setter Property="Margin" 
          Value="15" /> 
        <Setter Property="RenderTransform"> 
         <Setter.Value> 
          <TranslateTransform X="0" /> 
         </Setter.Value> 
        </Setter> 
        <Style.Triggers> 
         <EventTrigger RoutedEvent="Window.Loaded"> 
          <BeginStoryboard> 
           <Storyboard FillBehavior="HoldEnd"> 
            <DoubleAnimation Storyboard.TargetProperty="(Button.RenderTransform).(TranslateTransform.X)" 
                From="-150" 
                To="0" 
                RepeatBehavior="1" 
                Duration="0:0:2" /> 
           </Storyboard> 
          </BeginStoryboard> 
         </EventTrigger> 
        </Style.Triggers> 
       </Style> 
      </Grid.Resources> 
      <Button Grid.Row="0">Start</Button> 
      <Button Grid.Row="1">Setup</Button> 
      <Button Grid.Row="2">Quit</Button> 

     </Grid> 
    </Grid> 
</Window> 
+0

我用網格!謝謝它的作品! –

+0

我添加了一個使用樣式的例子。不幸的是,窗口的加載事件反覆被調用,所以動畫繼續進行。我看到的唯一解決方案是在第一次後設置布爾值,並防止動畫再次出現。 –

+0

謝謝!然而,在風格和網格之間有幾個問題,哪一個可以爲動畫提供更多選擇?什麼時候建議在網格上使用樣式,反之亦然? –

相關問題