0

我正在使用这个库进行转换:https ://code.google.com/p/dot-net-transitions/

我正在尝试处理此事件:https ://code.google.com/p/dot-net-transitions/wiki/CodingWithTransitions#Using_the_TransitionCompletedEvent

它说它在转换完成时由后台转换线程引发。虽然它没有被提出。另外,如何指定要引发事件的转换?

我正在尝试在 VB 中对其进行编码,但它不起作用。谁能给我一个例子来说明它是如何完成的?

这是相关位:

转换是异步运行的。如果您需要知道转换何时完成,您可以注册 TransitionCompletedEvent。当转换完成时,这是从转换的后台线程引发的。如果您的事件处理程序位于 UI 对象(例如表单)上,则该事件将自动编组到 UI 线程。

这是我的代码:

Public Sub ClosingTranstitions()
    Opacity = 1

    Dim tr_form = New Transition(New TransitionType_EaseInEaseOut(200))
    tr_form.add(Me, "Opacity", 0.0)

    Dim tr_Title = New Transition(New TransitionType_EaseInEaseOut(200))
    tr_Title.add(Title, "Left", 0)

    Dim tr_Content = New Transition(New TransitionType_EaseInEaseOut(300))
    tr_Content.add(Content, "Left", -10)

    tr_Title.run()
    tr_form.run()
    tr_Content.run()

End Sub

Public Event TransitionCompletedEvent As EventHandler(Of Transition.Args) 'This event is raised when transitions are complete

Private Sub theHandlerFunction(sender As Object, args As Transition.Args) Handles Me.TransitionCompletedEvent
    MsgBox("Closing")
End Sub

谢谢。

任何人??

4

1 回答 1

0

要触发转换处理程序,您必须添加一个事件处理程序:

AddHandler tr_form. TransitionCompletedEvent, AddressOf theHandlerFunction

实际上,您还必须存储 tr_form,因此稍后您可以在创建新转换时删除此处理程序,否则您将有内存泄漏,除非您一次又一次地重新启动您只创建/挂钩一次的相同转换。

于 2013-06-05T19:10:10.160 回答