DevExpress GridControl 關於使用CardView的一點小結
最近專案裡需要顯示商品的一系列圖片,打算用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)
{
······
}
}
到這就差不多解決問題了,提示下,注意將圖片快取,以提高效能。