<Window.Resources>
<Storyboard x:Key="DisplayAnimation">
<DoubleAnimation Storyboard.TargetName="myDockPanel"
Storyboard.TargetProperty="Width"
To="240"
Duration="0:0:0.5"/>
</Storyboard>
</Window.Resources>
<Grid>
<ItemsControl ItemsSource="{Binding SelectedResult}">
<ItemsControl.ItemTemplate>
<Button>
<Button.Triggers>
<EventTrigger>
<BeginStoryboard Storyboard={StaticResource DisplayAnimation}/>
</EventTrigger>
</Button.Triggers>
</Button>
</ItemsControl.ItemTemplate>
</ItemsControl>
<DockPanel x:Name="myDockPanel">
<TextBlock Text="Hello World"/>
</DockPanel>
</Grid>
点击这一组按钮中的其中一个会引发报错
‘myDockPanel’ name cannot be found in the name scope of ‘System.Windows.Controls.Button’.
原因:The problem is caused by the ItemsControl which
makes the Button and its resources in a different scope.
解决:A simple fix would be ,instead of using
Storyboard.TargetName , use Storyboard.Target binding instead , something like this Storyboard.Target="{Binding ElementName=myDockPanel}"