C# 在';的名称范围中找不到名称;System.Windows.Controls.Button';

C# 在';的名称范围中找不到名称;System.Windows.Controls.Button';,c#,wpf,storyboard,C#,Wpf,Storyboard,我的按钮有以下模板 <Window.Resources> <DataTemplate x:Key="ItemTemplate"> <DockPanel Width="Auto"> <Button DockPanel.Dock="Top"> <Button.Template>

我的
按钮有以下
模板

<Window.Resources>
    <DataTemplate x:Key="ItemTemplate">
        <DockPanel Width="Auto">
            <Button DockPanel.Dock="Top">                                           
                <Button.Template>
                    <ControlTemplate >
                        <Image  Source="{Binding image}"/>
                    </ControlTemplate>
                </Button.Template>                    
                <Button.Triggers>
                    <EventTrigger RoutedEvent="Button.Click">
                        <BeginStoryboard>
                            <Storyboard>
                                <local:GridLengthAnimation
                                    Storyboard.TargetName="col1"
                                    Storyboard.TargetProperty="Width"
                                    LeftGridWidth="*" RightGridWidth="1*" Duration="0:0:2"/>
                            </Storyboard>
                        </BeginStoryboard>
                    </EventTrigger>
                </Button.Triggers>
            </Button>
        </DockPanel>
    </DataTemplate>
</Window.Resources>

<Grid>
     ...
     ...
     <Grid Grid.Row="2" >

        <Grid.ColumnDefinitions>
            <ColumnDefinition Name="col1" Width="{Binding ElementName=root, Path=DataContext.gla.LeftGridWidth}" />
            <ColumnDefinition Name="col2" Width="{Binding ElementName=root, Path=DataContext.gla.RightGridWidth}" />
        </Grid.ColumnDefinitions>

        <Grid x:Name="LeftGrid" Grid.Row="2" Grid.Column="0" >
              <Border BorderThickness="1" BorderBrush="Red">
                  <ItemsControl ItemTemplate="{StaticResource ItemTemplate}" ItemsSource="{Binding ElementName=root, Path=DataContext._movies}">
                      <ItemsControl.ItemsPanel>
                          <ItemsPanelTemplate>
                              <UniformGrid Columns="5"/>
                          </ItemsPanelTemplate>
                      </ItemsControl.ItemsPanel>
                  </ItemsControl>
              </Border>
        </Grid>
     </Grid>
</Grid>

...
...
问题是
col1
没有被故事板拾取。TargetName=“col1”
。我收到错误消息:

PresentationFramework.dll中发生“System.InvalidOperationException”类型的未处理异常

其他信息:“System.Windows.Controls.Button”的名称范围中找不到“col1”名称。

我想这可能与我正在使用
项控件
有关。。。我认为
col1
将尝试在任何包含元素中找到。我不知道如何解决这个问题


任何帮助都将不胜感激

问题确实是由
ItemsControl
引起的,它使
按钮及其资源处于不同的范围内

一个简单的修复方法是,使用
故事板.TargetName
,而不是使用
故事板.Target
绑定,类似这样-


Storyboard.Target=“{Binding ElementName=col1}”

您可以发布
GridLengthAnimation
的代码吗?