为什么我的WPF XAML Grid TranslateTransform.X?

Geo*_*rge 6 .net wpf xaml

我可以使用这个来改变网格的宽度/高度,所以当我使用(Grid.RenderTransform).TranslateTransform.X时,为什么它不会起作用:

<Window.Triggers>
 <EventTrigger RoutedEvent="Button.Click" SourceName="button">
  <BeginStoryboard>
    <Storyboard>
      <DoubleAnimation  
      Storyboard.TargetProperty="(Grid.RenderTransform).(TranslateTransform.X)" 
      From="0" To="200" Storyboard.TargetName="grid" Duration="0:0:2"
      />
    </Storyboard>
  </BeginStoryboard>
 </EventTrigger>
</Window.Triggers>
Run Code Online (Sandbox Code Playgroud)

应用程序加载等,但单击按钮时没有任何反应.

这是我网格的XAML:

    <Grid x:Name="grid" Height="714" Canvas.Left="240" Canvas.Top="8" Width="360" RenderTransformOrigin="0.5,0.5">
         <Grid.Background>
          <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
           <GradientStop Color="Black" Offset="0"/>
           <GradientStop Color="White" Offset="1"/>
          </LinearGradientBrush>
         </Grid.Background>
         <Grid.ColumnDefinitions>
          <ColumnDefinition Width="0*"/>
          <ColumnDefinition/>
         </Grid.ColumnDefinitions>
     </Grid>
Run Code Online (Sandbox Code Playgroud)

请注意,我尝试了许多不同的Canvas.Left值,但无济于事.

geh*_*hho 12

在更改其值之前,您必须将TranslateTransform对象定义RenderTransform为Grid 的对象:

<Grid x:Name="grid" ... >
    <Grid.RenderTransform>
        <TranslateTransform X="0" Y="0" />
    </Grid.RenderTransform>
    <!-- ... -->
</Grid>
Run Code Online (Sandbox Code Playgroud)

我希望它以这种方式工作.祝好运!