我可以使用它更改网格的宽度/高度,那么为什么在我使用 (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>

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

这是我的网格的 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>

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

最佳答案

您必须定义一个 TranslateTransform 对象,该对象在某种意义上将对象 anchor 定为沿 x 或 y 轴的任何移动,作为网格的 RenderTransform,然后才能更改其值:

<Grid x:Name="grid" ... >
    <Grid.RenderTransform>
        <TranslateTransform X="0" Y="0" />
    </Grid.RenderTransform>
    <!-- ... -->
</Grid>

10-08 02:52