Поделиться через


Timeline.BeginTime Свойство

Определение

Возвращает или задает время начала этого Timeline.

public:
 property Nullable<TimeSpan> BeginTime { Nullable<TimeSpan> get(); void set(Nullable<TimeSpan> value); };
public TimeSpan? BeginTime { get; set; }
member this.BeginTime : Nullable<TimeSpan> with get, set
Public Property BeginTime As Nullable(Of TimeSpan)

Значение свойства

Время начала этого Timeline относительно BeginTimeродительского элемента. Если эта временная шкала является корневой временной шкалой, время относительно интерактивного времени начала (момент запуска временной шкалы). Это значение может быть положительным, отрицательным или null; значение null означает, что временная шкала никогда не воспроизводится. Значение по умолчанию равно нулю.

Примеры

Свойство BeginTime временной шкалы определяет начало активного периода временной шкалы. Если временная шкала имеет родительскую временную шкалу, свойство BeginTime определяет, сколько времени занимает временная шкала после его родительского запуска. Если временная шкала является корневой временной шкалой (например, Storyboard), свойство BeginTime определяет, сколько времени занимает временная шкала, чтобы начать воспроизведение после его активации.

В следующем примере показаны несколько разных временных шкал с различными параметрами BeginTime.

<!-- This example shows how the BeginTime property determines when a timeline starts.
     Several rectangles are animated by DoubleAnimations with identical 
     durations and target values, but with different
     BeginTime settings. -->
     
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  WindowTitle="BeginTime Example">
  <StackPanel Margin="20">

    <!-- The rectangles to animate. -->
    <Rectangle Name="DefaultBeginTimeRectangle" 
      Width="20" Height="20" Fill="Blue"  />
      
    <Rectangle Name="DelayedBeginTimeRectangle" 
      Width="20" Height="20" Fill="Blue"  />
    
    <Rectangle Name="DelayedAnimationWithDelayedParentRectangle" 
      Width="20" Height="20" Fill="Blue"  /> 

    <Rectangle Name="NegativeBeginTimeExampleRectangle" 
      Width="20" Height="20" Fill="Blue"  />            
    
    <!-- Create a button to start the animations. -->
    <Button Margin="20" Content="Start Animations">
      <Button.Triggers>
        <EventTrigger RoutedEvent="Button.Click">
          <BeginStoryboard>
            <Storyboard>

              <!-- This animation starts as soon as the button is clicked, because it
                   has a BeginTime of 0. -->
              <DoubleAnimation 
                Storyboard.TargetName="DefaultBeginTimeRectangle" 
                Storyboard.TargetProperty="Width"
                BeginTime="0:0:0" From="100" To="600" Duration="0:0:5"  /> 

              <!-- This animation starts 5 seconds after the button is clicked. -->
              <DoubleAnimation 
                Storyboard.TargetName="DelayedBeginTimeRectangle" 
                Storyboard.TargetProperty="Width"  
                BeginTime="0:0:5" From="100" To="600" Duration="0:0:5" />
                
              <ParallelTimeline BeginTime="0:0:5">  

              <!-- This animation starts 10 seconds after the button is clicked, 
                   because its parent has a BeginTime of 5 seconds and it has
                   a BeginTime of 5 seconds: 5 + 5 = 10.  -->              
                <DoubleAnimation  
                  Storyboard.TargetName="DelayedAnimationWithDelayedParentRectangle" 
                  Storyboard.TargetProperty="Width" 
                  BeginTime="0:0:5" From="100" To="600" Duration="0:0:5"  />
              </ParallelTimeline>
              
              <!-- This animation starts as soon as the button is clicked, but
                   it animates from 350 to 600 instead of from 100 to 600 
                   because of its negative BeginTime. The negative BeginTime
                   setting advances the animation, so that it behaves as though
                   it had already been playing for 2.5 seconds as soon as it is
                   started. -->
              <DoubleAnimation 
                Storyboard.TargetName="NegativeBeginTimeExampleRectangle" 
                Storyboard.TargetProperty="Width"  
                BeginTime="-0:0:2.5" From="100" To="600" Duration="0:0:5" />              
              
            </Storyboard>
          </BeginStoryboard>
        </EventTrigger>
      </Button.Triggers>      
    </Button>
    
    <!-- This example demonstrates how the BeginTime property works on a root timeline. -->
    <Rectangle Name="RootTimelineWithDelayedBeginTimeRectangle"
      Width="20" Height="20" Fill="Blue" >
      <Rectangle.Triggers>
        <EventTrigger RoutedEvent="Rectangle.MouseLeftButtonDown">
          <BeginStoryboard>
            <Storyboard BeginTime="0:0:5">
            
              <!-- This animation starts 5 seconds after the left mouse button
                   is pressed, because its parent storyboard (a root timeline)
                   has a BeginTime of 5 seconds. -->
              <DoubleAnimation 
                Storyboard.TargetName="RootTimelineWithDelayedBeginTimeRectangle" 
                Storyboard.TargetProperty="Width"
                BeginTime="0:0:0" From="100" To="600" Duration="0:0:2" />
            </Storyboard>
          </BeginStoryboard>
        </EventTrigger>
      </Rectangle.Triggers>
    </Rectangle>    
  </StackPanel>
</Page>

Комментарии

Свойство BeginTime полезно для создания временных шкал, которые играют в последовательности: увеличив BeginTime последовательных временных шкал, которые совместно используют один и тот же родительский объект, можно ошеломить время их воспроизведения.

Отрицательные значения

Отрицательное значение BeginTime приводит к тому, что Timeline вести себя так, как будто оно началось в некоторое время в прошлом. Например, Timeline с BeginTime отрицательного 2,5 секунды, а Duration 5 секунд будет завершено на полпути при запуске.

BeginTime и SpeedRatio

Время, описанное свойством BeginTime, измеряется в течение родительского времени временной шкалы. Например, временная шкала с BeginTime 5, родительский элемент которого имеет SpeedRatio 2 фактически начинается через 2,5 секунды.

Собственный параметр SpeedRatio временной шкалы не влияет на его BeginTime. Например, временная шкала с BeginTime 5 секунд, SpeedRatio 2 и родительская временная шкала с SpeedRatio 1 начинается через 5 секунд, а не через 2,5 секунды.

Сведения о свойстве зависимостей

Поле идентификатора BeginTimeProperty
Свойства метаданных, заданные для true Никакой

Использование атрибута XAML

объект <BeginTime="[-][дней.]часов:минут:секунд[.дробнойseconds]"/>

-или-

объект <BeginTime="[-][дней.]часов:минут"/>

-или-

объект <BeginTime="[-]дней"/>

-или-

объект <BeginTime="{x:Null Markup Extension}"/>

Значения XAML

Элементы в квадратных скобках ([ и ]) являются необязательными.

дней
System.Int32

Значение больше или равно 0, описывающее количество дней, охватываемых этим временем начала.

часов
System.Int32

Значение от 0 до 23, представляющее количество часов, охватываемых этим временем начала.

минут
System.Int32

Значение от 0 до 59, представляющее количество минут, охватываемых этим временем начала.

секунды
System.Int32

Значение от 0 до 59, представляющее количество секунд, охватываемых этим временем начала.

дробныеseconds
System.Int32

Значение, состоящее из 1–7 цифр, представляющих дробные секунды.

Полный синтаксис TimeSpan см. в разделе "Примечания" страницы Parse.

Применяется к

См. также раздел