Dot-Net

為什麼我的 WPF XAML Grid TranslateTransform.X 不能?

  • July 1, 2020

我可以使用它來更改網格的寬度/高度,那麼為什麼當我使用 (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>

應用程序載入等,但點擊按鈕時沒有任何反應。

這是我的網格的 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對象,該對像在某種意義上錨定對象,以便沿 x 或 y 軸進行任何移動,就像RenderTransformGrid 一樣,才能更改其值:

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

引用自:https://stackoverflow.com/questions/2621711