1.
請問在Silverlight 2 講堂 -13:使用Timer建立圖片輪播器[程式]中的下列的2段CODE 要如何轉換成VB的程式嗎呢?
public Page() } |
void LoadPictures(object obj) { this.Dispatcher.BeginInvoke( |
==>
首先說明的是,第一段程式其實也可以直接在XAML的標籤中設定UserControl的事件,然後再透過VS 2008開發工具的[巡覽至事件處理常式]功能,就可以加入Page_Loaded的事件處理常式:
在VB程式中,若是要跟範例一樣動態註冊事件處理常式的話,就要改用AddHandler指令,程式碼如下:
Public Sub New() End Sub |
而第二段程式中,因為使用了C#的匿名方法指定,所以程式較為簡潔。若是要改成VB的程式的話,建議步驟:
1. 先定義一個沒有接收參數的Delegate:
Public Delegate Sub NoArgsDelegate() 2. 然後再建立一個UpdateUI的方法,觸發更新UI的動作:
Public Sub UpdateUI()
MakeIndexRight()
ResetImageSource()
Scrolling.Begin()
End Sub
3. 再透過Delegate物件,將UpdateUI方法註冊到Dispatcher物件的工作佇列中:
Private Sub LoadPictures(ByVal obj As Object)
Me.Dispatcher.BeginInvoke(New NoArgsDelegate(AddressOf UpdateUI))
End Sub
2.
請問老師可以不可以提供VB的範例程式碼?
==>
這一點稍微抱歉,因為目前Silverlight 2講堂的內容還有很多要推出,所以暫時我的範例會先以C#為主。其實大部分的程式我都會加上說明,因此使用VB的朋友也可以試著寫寫看,有問題可以跟我說,我可以先把一些比較複雜的程式轉成VB程式碼給各位參考。等到講堂內容完成之後,我也會另外再製作一份VB版的範例程式,給使用VB開發的朋友參考。
沒有留言:
張貼留言