最近項目裡需要顯示商品的一系列圖檔,打算用CardView來顯示,由于第一次使用,遇到許多問題,發現網上這方面的資源很少,是以把自己的一點點實際經驗小結一下,供自己和大家以後參考。
1、選擇CardView,将原來的GirView轉換為CardView,如下圖
效果如下:
2、控件預設是縱向排列,如果要改成橫向排列,改變屬性MaximumCardColumns(允許橫向排列的卡片數量)和MaximumCardRows(允許縱向排列的卡片行數)。
我這裡設定為:MaximumCardColumns:-1、MaximumCardRows:1,效果如下圖;
3、要用到卡片,大多數情況是要展示圖檔用的。如何展示呢?添加一個存儲圖檔的對象(我這裡是直接在資料源中添加Image類型的字段),然後更改該字段的ColumnEdit的類型為PictureEdit,并命名為rowPicture,如下圖
4、又發現圖檔的大小被限制了,改變CardView(卡片高度自适應,以适應圖檔的高度)和rowPicture(設定圖檔的高度)兩個地方的屬性即可,如圖
CardView:
rowPicture:
效果如下圖:
5、布局問題解決了,其他需要調整的,其實屬性裡都有,這裡隻是示範。如何根據URL将圖檔下載下傳下來顯示,這裡貼出主要代碼:
var client = new WebClient();
client.DownloadDataCompleted += client_DownloadDataCompleted;
client.DownloadDataAsync(new Uri(img.Url));
private void client_DownloadDataCompleted(object sender, DownloadDataCompletedEventArgs e)
{
try
{
Image img = Image.FromStream(new MemoryStream(e.Result));
······
}
catch (Exception ex)
{
······
}
}
到這就差不多解決問題了,提示下,注意将圖檔緩存,以提高性能。