WPF Animation - Почему «By» не может иметь отрицательное значение? - PullRequest
3 голосов
/ 15 декабря 2009

Я ковыряюсь в анимации в WPF, и я в замешательстве. Для RectAnimation, By не может быть отрицательным по высоте и ширине.

Итак, если вы используете ключевое слово «By», прямоугольники могут только расти (вместо «To»)?

Вот пример кода:

<Page  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
  <StackPanel Orientation="Vertical" HorizontalAlignment="Left">
    <Path Stroke="Black" StrokeThickness="1" Fill="LemonChiffon">
      <Path.Data>
        <RectangleGeometry x:Name="myRectangleGeometry" Rect="0,200,100,100" />

      </Path.Data>
      <Path.Triggers>
        <EventTrigger RoutedEvent="Path.Loaded">
          <BeginStoryboard>
            <Storyboard> 
              <!-- Animate the Rect property of the RectangleGeometry
                   which causes the rectangle to animate postion and size. -->
              <RectAnimation
              Storyboard.TargetName="myRectangleGeometry"
              Storyboard.TargetProperty ="Rect"
              Duration="0:0:2" FillBehavior="HoldEnd" 
              From="0,0,100,100"
              By="600,50,200,-50" />
                               ^
            </Storyboard>      |
          </BeginStoryboard>   |
        </EventTrigger>        |
      </Path.Triggers>         |
    </Path>                    |
  </StackPanel>                |
</Page>                        |
                               |
This returns an error, but only if it is negative.

1 Ответ

3 голосов
/ 15 декабря 2009

Вы фактически определяете прямоугольник в свойстве By объекта RectAnimation. Нельзя создать прямоугольник с отрицательными размерами.

By="x,y,Width,Height"

То, что вы, вероятно, хотите сделать, может быть достигнуто с помощью свойства To:

To="600,50,300,50"

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