我使用这个库的过渡: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
谢谢。
任何人? ?
要触发转换处理程序,您必须添加一个事件处理程序:
AddHandler tr_form. TransitionCompletedEvent, AddressOf theHandlerFunction
事实上,你还必须存储tr_form,所以以后你可以在创建一个新的转换时删除这个处理程序,否则你会有内存泄漏,除非你一次又一次地重新启动相同的转换,你只创建/hook一次。