該控件繼承 Control 基類開發的。功能包括為設置圖片框數量、使用導航按鈕手動切換圖片。
控件的播放原理在動畫播放前計算好要播放特圖片的信息。動畫過程是利用定時器更新圖片的信息。
控件播放界面顯示的圖片可以是一張或多張,每次移動只有一張滑動方的方向一共有四種。
有些人會看到 Images 屬性的類型是自定義 ImageItemCollection ,而 ImageItemCollection 是繼承 IList, ICollection, IEnumerable 的,就會覺得為什么這里不用 List 類型集合。這是有原因的,這是為了能讓控件在VS IDE設計窗口使用。我們必須要按照.NET IDE控件開發模式來開發。如果你不按照.NET IDE控件開發模式來開發,你的控件在設計器窗口會報很多錯的。如果這個控件只是用純代碼的方式去調用的話你用 List 類型集合去開發是沒有錯的。下面以 Images 屬性為例子:
首先你要知道利用VS IDE設計器開發時有很多代碼都是由VS IDE設計器自動生成的,假如 Images 屬性是用 List 類型,那你在 Images.Add()后VS IDE設計器是無法立即更新界面。因為Add 方法里面沒有要處理你的控件的一些邏輯代碼。但利用 ImageItemCollection 就不一樣了,因為 ImageItemCollection 是繼承 IList, ICollection, IEnumerable,你可以在 Add 方法里面編寫你需要的邏輯。
還有一方面就是在VS IDE設計器模式下你操作 Images 屬性時如果 Images 是 List 集合類型的話是會報錯的。
通過 ImageFrameCount 屬性可以設置圖片框的數量。
通過 Images 集合可以添加圖片。每一個圖片選項包括以下屬性
這里有一個 Enable 的屬性,這個屬性的用途可以控制圖片是否在播放列表中。因為把圖片添加到 Images 集合並不代表圖片處於播放列表中。就是說我添加圖片,但我遲點再設置它可以播放。
它的播放原理
imageFrameList 里面的圖片索引並不是 Images 的索引,而是通過 enableImageList 的簡介索引去 Images 找到真實的圖片索引。
通過 EnableImageCurrentIndex 屬性可以設置當前已經播放到的圖片索引,但這個索引是指 enableImageList 的索引,這個索引對應的圖片框和 Orientation 屬性有關。
Orientation 屬性值為 LeftToRight 時當前索引指向的圖片框為右邊第一個;
Orientation 屬性值為 RightToLeft 時當前索引指向的圖片框為左邊第一個;
Orientation 屬性值為 TopToBottom 時當前索引指向的圖片框為底部第一個;
Orientation 屬性值為 BottomToTop 時當前索引指向的圖片框為頂部第一個;
通過 NavigationBarShowType 屬性設置導航欄的功能 。功能如下
可以通 Tab 鍵 讓空間激活 同鍵盤的左右鍵可以對按鈕進行切換,這時通過Enter、Space鍵可以進行圖片的切換播放。通過鍵盤操作的條件是 NavigationBarShowType 屬性值必須為 Normal 。
重寫方法如下
公開方法如下
新增類如下
新增屬性如下
源碼下載:走馬燈圖片輪播控件.zip