当前位置: 首页>>代码示例>>VB.NET>>正文


VB.NET ClockController.SeekAlignedToLastTick方法代码示例

本文整理汇总了VB.NET中System.Windows.Media.Animation.ClockController.SeekAlignedToLastTick方法的典型用法代码示例。如果您正苦于以下问题:VB.NET ClockController.SeekAlignedToLastTick方法的具体用法?VB.NET ClockController.SeekAlignedToLastTick怎么用?VB.NET ClockController.SeekAlignedToLastTick使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。


在下文中一共展示了ClockController.SeekAlignedToLastTick方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的VB.NET代码示例。

示例1: New

' 导入命名空间
Imports System.Windows
Imports System.Windows.Controls
Imports System.Windows.Media
Imports System.Windows.Media.Animation
Imports System.Windows.Navigation
Imports System.Windows.Shapes
Imports System.Data
Imports System.Xml
Imports System.Configuration



Namespace SDKSample
    ''' <summary>
    ''' Shows how to interactively control a clock.
    ''' </summary>

  Public Class SeekAlignedToLastTickExample
      Inherits Page

        Private myClock As AnimationClock
        Private currentTimeIndicator As TextBlock
        Private seekDestination As TextBox
        Private rectangleWidthIndicator As TextBlock
        Private myRectangle As Rectangle

        Public Sub New()



            Me.WindowTitle = "Controlling a Storyboard"
            Me.Background = Brushes.White

            Dim myStackPanel As New StackPanel()
            myStackPanel.Margin = New Thickness(20)

            ' Create a rectangle.
            myRectangle = New Rectangle()
            With myRectangle
                .Width = 100
                .Height = 20
                .Margin = New Thickness(12, 0, 0, 5)
                .Fill = New SolidColorBrush(Color.FromArgb(170, 51, 51, 255))
                .HorizontalAlignment = HorizontalAlignment.Left
            End With
            myStackPanel.Children.Add(myRectangle)

            '
            ' Create an animation and a storyboard to animate the
            ' rectangle.
            '
            Dim myDoubleAnimation As New DoubleAnimation(100, 500, New Duration(TimeSpan.FromSeconds(60)))
            myClock = myDoubleAnimation.CreateClock()
            myRectangle.ApplyAnimationClock(Rectangle.WidthProperty, myClock)
            myClock.Controller.Stop()


            '
            ' Create some buttons to control the storyboard
            ' and a panel to contain them.
            '
            Dim buttonPanel As New StackPanel()
            buttonPanel.Orientation = Orientation.Horizontal
            Dim beginButton As New Button()
            beginButton.Content = "Begin"
            AddHandler beginButton.Click, AddressOf beginButton_Clicked
            buttonPanel.Children.Add(beginButton)
            Dim pauseButton As New Button()
            pauseButton.Content = "Pause"
            AddHandler pauseButton.Click, AddressOf pauseButton_Clicked
            buttonPanel.Children.Add(pauseButton)
            Dim resumeButton As New Button()
            resumeButton.Content = "Resume"
            AddHandler resumeButton.Click, AddressOf resumeButton_Clicked
            buttonPanel.Children.Add(resumeButton)
            Dim skipToFillButton As New Button()
            skipToFillButton.Content = "Skip to Fill"
            AddHandler skipToFillButton.Click, AddressOf skipToFillButton_Clicked
            buttonPanel.Children.Add(skipToFillButton)
            Dim setSpeedRatioButton As New Button()
            setSpeedRatioButton.Content = "Triple Speed"
            AddHandler setSpeedRatioButton.Click, AddressOf setSpeedRatioButton_Clicked
            buttonPanel.Children.Add(setSpeedRatioButton)
            Dim stopButton As New Button()
            stopButton.Content = "Stop"
            AddHandler stopButton.Click, AddressOf stopButton_Clicked
            buttonPanel.Children.Add(stopButton)
            Dim removeButton As New Button()
            removeButton.Content = "Remove"
            AddHandler removeButton.Click, AddressOf removeButton_Clicked
            buttonPanel.Children.Add(removeButton)

            myStackPanel.Children.Add(buttonPanel)

            ' Create some controls to display the
            ' storyboard's current time and the
            ' current width of the rectangle.
            Dim seekPanel As New StackPanel()
            seekPanel.Margin = New Thickness(10)
            Dim aPanel As New StackPanel()
            Dim aLabel As New Label()
            aPanel.Orientation = Orientation.Horizontal
            aLabel.Content = "Current Time: "
            aPanel.Children.Add(aLabel)
            currentTimeIndicator = New TextBlock()
            aPanel.Children.Add(currentTimeIndicator)
            seekPanel.Children.Add(aPanel)

            aPanel = New StackPanel()
            aPanel.Orientation = Orientation.Horizontal
            aLabel = New Label()
            aLabel.Content = "Rectangle Width: "
            aPanel.Children.Add(aLabel)
            rectangleWidthIndicator = New TextBlock()
            rectangleWidthIndicator.Text = myRectangle.Width.ToString()
            aPanel.Children.Add(rectangleWidthIndicator)
            seekPanel.Children.Add(aPanel)


            ' Create some controls to enable the
            ' user to specify a seek position.

            aPanel = New StackPanel()
            aPanel.Orientation = Orientation.Horizontal
            aLabel = New Label()
            aLabel.Content = "Seek Offset: "
            aPanel.Children.Add(aLabel)
            seekDestination = New TextBox()
            seekDestination.Text = "0"
            aPanel.Children.Add(seekDestination)
            seekPanel.Children.Add(aPanel)


            Dim seekButton As New Button()
            seekButton.Content = "Seek"
            AddHandler seekButton.Click, AddressOf seekButton_Clicked
            seekPanel.Children.Add(seekButton)
            Dim seekAlignedToLastTickButton As New Button()
            seekAlignedToLastTickButton.Content = "Seek Aligned to Last Tick"
            AddHandler seekAlignedToLastTickButton.Click, AddressOf seekAlignedToLastTickButton_Clicked
            seekPanel.Children.Add(seekAlignedToLastTickButton)

            myStackPanel.Children.Add(seekPanel)

            Me.Content = myStackPanel

            AddHandler myClock.CurrentTimeInvalidated, AddressOf myClock_CurrentTimeInvalidated
        End Sub

        ' Begins the clock.
        Private Sub beginButton_Clicked(ByVal sender As Object, ByVal args As RoutedEventArgs)

            myClock.Controller.Begin()
        End Sub

        ' Pauses the clock.
        Private Sub pauseButton_Clicked(ByVal sender As Object, ByVal args As RoutedEventArgs)
            myClock.Controller.Pause()

        End Sub

        ' Resumes the clock.
        Private Sub resumeButton_Clicked(ByVal sender As Object, ByVal args As RoutedEventArgs)
            myClock.Controller.Resume()

        End Sub

        ' Advances the clock to its fill period.
        Private Sub skipToFillButton_Clicked(ByVal sender As Object, ByVal args As RoutedEventArgs)
            myClock.Controller.SkipToFill()

        End Sub

        ' Updates the clock's speed.
        Private Sub setSpeedRatioButton_Clicked(ByVal sender As Object, ByVal args As RoutedEventArgs)
            ' Makes the clock progress three times as fast as normal.
            myClock.Controller.SpeedRatio = 3

        End Sub

        ' Stops the clock.
        Private Sub stopButton_Clicked(ByVal sender As Object, ByVal args As RoutedEventArgs)
            myClock.Controller.Stop()

        End Sub

        ' Removes the clock.
        Private Sub removeButton_Clicked(ByVal sender As Object, ByVal args As RoutedEventArgs)
            myClock.Controller.Remove()

        End Sub

        Private Sub seekButton_Clicked(ByVal sender As Object, ByVal args As RoutedEventArgs)
            Try

                ' The rectangle width will probably not be at its new
                ' value when this call is made, because the 
                ' clock probably hasn't ticked yet.
                Dim seekTime As TimeSpan = TimeSpan.Parse(seekDestination.Text)
                myClock.Controller.Seek(seekTime, TimeSeekOrigin.BeginTime)
                rectangleWidthIndicator.Text = myRectangle.Width.ToString()

            Catch ex As FormatException
                MessageBox.Show("Invalid TimeSpan value.")
                seekDestination.Focus()
            End Try
        End Sub

        Private Sub seekAlignedToLastTickButton_Clicked(ByVal sender As Object, ByVal args As RoutedEventArgs)

            Try

                ' The rectangle width will be at its new
                ' value when this call is made, because SeekAlignedToLastTick 
                ' operation immediately updates timeline and animation
                ' values.        
                Dim seekTime As TimeSpan = TimeSpan.Parse(seekDestination.Text)
                myClock.Controller.SeekAlignedToLastTick(seekTime, TimeSeekOrigin.BeginTime)
                rectangleWidthIndicator.Text = myRectangle.Width.ToString()

            Catch ex As FormatException
                MessageBox.Show("Invalid TimeSpan value.")
                seekDestination.Focus()
            End Try
        End Sub

        Private Sub myClock_CurrentTimeInvalidated(ByVal sender As Object, ByVal e As EventArgs)

            currentTimeIndicator.Text = myClock.CurrentTime.ToString()

        End Sub



  End Class
End Namespace
开发者ID:VB.NET开发者,项目名称:System.Windows.Media.Animation,代码行数:237,代码来源:ClockController.SeekAlignedToLastTick


注:本文中的System.Windows.Media.Animation.ClockController.SeekAlignedToLastTick方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。