1. 程式人生 > >關於ScrollViewer滾動條滾動至最底部的實現

關於ScrollViewer滾動條滾動至最底部的實現

轉載:http://blog.csdn.net/hyr83960944/article/details/7728644

做win8開發也2個月了,一直的想把自己的心得放到部落格上,可是每次都是趕專案,沒空寫,這裡也就不從頭開始寫了,開發遇到哪些問題就寫哪些吧,以前的一些心得以後有時間也會慢慢放上來。接下來進入正題:

ScrollViewer涉及到的幾個高度(ViewportHeight、ExtentHeight、Height)等幾個高度和WP7中是一樣的,不懂的可以去看WP7中的詳細介紹,若大家有興趣,有空專門給大夥寫一篇關於ScrollViewer的文章。

如果僅僅是單純的讓ScrollViewer滑動到底部很簡單,只要執行以下一句程式碼即可:
xxx.ScrollToVerticalOffset(xxx.ActualHeight + xxx.VierportHeight); 但是要注意一點,如果涉及到實時更新問題時,比如聊天介面,實現方式是通過ScrollViewer裡面包了一個ListView或者GridView的,傳送簡訊時,顯示的在介面的簡訊內容也要馬上進行更新,這時一定要在SizeChanged事件裡面進行更新,否則會有問題。 如果是ScrollViewer的SizeChanged仍然可以用上面那句程式碼實現,如果是ListView或者GridView的SizeChanged的事件,可用下面兩句程式碼來實現: double d = SmsListView.ActualHeight;
xxx.ScrollToVerticalOffset(d);  建議用後一種方式。 另外注意:對於實時更新的話,最後將以上程式碼放在定時事件(就是你需要實時處理的事件)中,因為SizeChanged只會在開始的時候更新一次不能實時變化,所以可以考慮以下程式碼             double d = this.scrList.ActualHeight + this.scrList.ViewportHeight + this.scrList.ExtentHeight;
            this.scrList.ScrollToVerticalOffset(d);