0
我在WPF應用程序3層的按鈕。加載後,按鈕應該從左側翻譯到應用程序的中心。我不想動畫應用到每一個按鈕,是有什麼辦法可以組這些按鈕&然後添加動畫屬性將動畫按鈕組的組?是否有可能進行動畫一組控件在WPF?
我在WPF應用程序3層的按鈕。加載後,按鈕應該從左側翻譯到應用程序的中心。我不想動畫應用到每一個按鈕,是有什麼辦法可以組這些按鈕&然後添加動畫屬性將動畫按鈕組的組?是否有可能進行動畫一組控件在WPF?
你可以團例如柵格在容器中的按鈕,然後動畫容器。
另一種方法是將動畫放入樣式中,並將樣式應用於按鈕,或者通過設置每個按鈕的樣式顯式設置,或者通過在按鈕的父級中設置按鈕的默認樣式來隱式設置樣式容器)
下面是一個使用樣式的例子。
不幸的是,窗口的加載事件被一再呼籲讓動畫不斷持續。我看到的唯一解決方案是在第一次後設置布爾值,並防止動畫再次出現。
<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>
我用網格!謝謝它的作品! –
我添加了一個使用樣式的例子。不幸的是,窗口的加載事件反覆被調用,所以動畫繼續進行。我看到的唯一解決方案是在第一次後設置布爾值,並防止動畫再次出現。 –
謝謝!然而,在風格和網格之間有幾個問題,哪一個可以爲動畫提供更多選擇?什麼時候建議在網格上使用樣式,反之亦然? –