为什么 storyboard.target 没有动画?
Why does the storyboard.target not get animated?
我想在单击按钮时为堆栈面板设置动画,我单击的 Button
会设置动画,而 StackPanel
不会
这个在按钮里ControlTemplate
<EventTrigger RoutedEvent="Click">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.Target="{Binding ElementName=menus}"
Storyboard.TargetProperty="Width"
From="0" To="1500"
Duration="0:0:2" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
这是在xaml
<StackPanel x:Name="menus" Orientation="Horizontal"
VerticalAlignment="Bottom"
HorizontalAlignment="Center"
Margin="160 0 0 120">
<Button Margin="30" Content="Open Account" Style="{StaticResource MenuButton}" />
<Button Margin="30" Content="Instant Card Printing" Style="{StaticResource MenuButton}" />
<Button Margin="30" Content="Banking Services" Style="{StaticResource MenuButton}" />
<Button Margin="30" Content="Bill Payment" Style="{StaticResource MenuButton}" />
<Button Margin="30" Content="Support" Style="{StaticResource MenuButton}" />
</StackPanel>
我希望单击按钮后堆栈面板从左到右动画
我不确定您的代码是什么导致您的示例失败。 XAML 中可能发生了您没有 post 的事情。下面是一个完整且独立的示例,其功能与您描述的完全相同:
<StackPanel>
<Button Content="Clicky Button" Margin="10" HorizontalAlignment="Left">
<Button.Triggers>
<EventTrigger RoutedEvent="PreviewMouseDown">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.Target="{Binding ElementName=menus}"
Storyboard.TargetProperty="Width"
From="0" To="500"
Duration="0:0:2" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Button.Triggers>
</Button>
<StackPanel x:Name="menus" Orientation="Horizontal" Width="0"
VerticalAlignment="Bottom" HorizontalAlignment="Center">
<Button Content="Open Account" />
<Button Content="Instant Card Printing" />
<Button Content="Banking Services" />
<Button Content="Bill Payment" />
<Button Content="Support"/>
</StackPanel>
</StackPanel>
当您点击 'Clicky Button' 时,StackPanel
在 2 秒内增长到 500 的宽度。
我想在单击按钮时为堆栈面板设置动画,我单击的 Button
会设置动画,而 StackPanel
不会
这个在按钮里ControlTemplate
<EventTrigger RoutedEvent="Click">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.Target="{Binding ElementName=menus}"
Storyboard.TargetProperty="Width"
From="0" To="1500"
Duration="0:0:2" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
这是在xaml
<StackPanel x:Name="menus" Orientation="Horizontal"
VerticalAlignment="Bottom"
HorizontalAlignment="Center"
Margin="160 0 0 120">
<Button Margin="30" Content="Open Account" Style="{StaticResource MenuButton}" />
<Button Margin="30" Content="Instant Card Printing" Style="{StaticResource MenuButton}" />
<Button Margin="30" Content="Banking Services" Style="{StaticResource MenuButton}" />
<Button Margin="30" Content="Bill Payment" Style="{StaticResource MenuButton}" />
<Button Margin="30" Content="Support" Style="{StaticResource MenuButton}" />
</StackPanel>
我希望单击按钮后堆栈面板从左到右动画
我不确定您的代码是什么导致您的示例失败。 XAML 中可能发生了您没有 post 的事情。下面是一个完整且独立的示例,其功能与您描述的完全相同:
<StackPanel>
<Button Content="Clicky Button" Margin="10" HorizontalAlignment="Left">
<Button.Triggers>
<EventTrigger RoutedEvent="PreviewMouseDown">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.Target="{Binding ElementName=menus}"
Storyboard.TargetProperty="Width"
From="0" To="500"
Duration="0:0:2" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Button.Triggers>
</Button>
<StackPanel x:Name="menus" Orientation="Horizontal" Width="0"
VerticalAlignment="Bottom" HorizontalAlignment="Center">
<Button Content="Open Account" />
<Button Content="Instant Card Printing" />
<Button Content="Banking Services" />
<Button Content="Bill Payment" />
<Button Content="Support"/>
</StackPanel>
</StackPanel>
当您点击 'Clicky Button' 时,StackPanel
在 2 秒内增长到 500 的宽度。