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