Почему мой WPF XAML Grid не будет TranslateTransform.X? - PullRequest
6 голосов
/ 12 апреля 2010

Я могу изменить ширину / высоту сетки, используя это, так почему это не будет работать, когда я использую (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,безрезультатно.

1 Ответ

12 голосов
/ 12 апреля 2010

Вам нужно определить TranslateTransform объект как RenderTransform для Сетки, прежде чем вы сможете изменить его значения:

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

Я надеюсь, что это будет работать так.Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...