亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁(yè) > 編程 > C# > 正文

Winform開(kāi)發(fā)框架中如何使用DevExpress的內(nèi)置圖標(biāo)資源

2019-10-29 19:41:07
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

前言

在開(kāi)發(fā)Winform程序界面的時(shí)候,我們往往會(huì)使用一些較好看的圖表,以便能夠?yàn)槲覀兊某绦蚪缑嬖錾?,良好的圖標(biāo)設(shè)置可以讓界面看起來(lái)更加美觀舒服,而且也比較容易理解,圖標(biāo)我們可以通過(guò)一些網(wǎng)站獲取各種場(chǎng)景的圖標(biāo)資源,不過(guò)本篇隨筆主要介紹如何利用DevExpress的內(nèi)置圖標(biāo)資源來(lái)實(shí)現(xiàn)界面圖標(biāo)的設(shè)置。

下面話不多說(shuō)了,來(lái)一起看看詳細(xì)的介紹吧

1、設(shè)計(jì)時(shí)刻的圖標(biāo)處理

豐富的圖標(biāo)處理,在菜單、工具欄、樹(shù)列表等地方,以及按鈕等地方,都可以使用,而這些我們可以利用DevExpress的內(nèi)置圖標(biāo)選擇來(lái)減輕我們尋找合適圖標(biāo)的煩惱。

Winform,開(kāi)發(fā)框架,DevExpress,圖標(biāo)資源

一些按鈕、工具欄等的圖標(biāo)設(shè)置,一般是固定的,我們往往可以在設(shè)計(jì)時(shí)刻就指定它,這樣我們可以使用本地的圖標(biāo),也可以使用DevExpress的內(nèi)置圖標(biāo)。而使用DevExpress內(nèi)置圖標(biāo)資源的時(shí)候,我們可以調(diào)出DevExpress的內(nèi)置圖標(biāo)選擇框的。

如下是按鈕添加圖標(biāo)方式,操作非常簡(jiǎn)單,在按鈕的右上角小圖標(biāo)上單擊一下進(jìn)入編輯界面,如下所示。

Winform,開(kāi)發(fā)框架,DevExpress,圖標(biāo)資源

然后選擇Image按鈕,進(jìn)入圖標(biāo)選擇界面,選擇內(nèi)置的DevExpress圖標(biāo)庫(kù)即可,基本上,只要是DevExpress的原生控件,那么就可以通過(guò)這種內(nèi)置圖標(biāo)的對(duì)話框進(jìn)行圖標(biāo)選擇,非常方便。

Winform,開(kāi)發(fā)框架,DevExpress,圖標(biāo)資源

2、運(yùn)行時(shí)刻的圖標(biāo)處理

上面的操作是在設(shè)計(jì)時(shí)候,DevExpress設(shè)計(jì)器給我們提供很多便利選擇內(nèi)置圖標(biāo),而在界面運(yùn)行時(shí)刻,想動(dòng)態(tài)處理界面按鈕圖標(biāo),或者樹(shù)形菜單的圖標(biāo)的時(shí)候,就沒(méi)有這個(gè)直接的接口來(lái)設(shè)置圖標(biāo)了,而我們框架的菜單往往都是需用動(dòng)態(tài)增加的,因此圖標(biāo)的設(shè)置也是在運(yùn)行時(shí)刻的。如下面的樹(shù)列表中,圖標(biāo)就是動(dòng)態(tài)指定的。

Winform,開(kāi)發(fā)框架,DevExpress,圖標(biāo)資源

這些動(dòng)態(tài)的樹(shù)形菜單,是在權(quán)限系統(tǒng)里面動(dòng)態(tài)配置的,菜單的配置界面如下所示。

Winform,開(kāi)發(fā)框架,DevExpress,圖標(biāo)資源

上面的選擇圖圖標(biāo)就是我們需要?jiǎng)討B(tài)設(shè)置的圖標(biāo),由于圖標(biāo)資源我們是以圖片形式存儲(chǔ)在對(duì)應(yīng)的記錄里面的,因此使用起來(lái)也是比較方便的,我們?cè)谂渲玫臅r(shí)候,獲取到對(duì)應(yīng)的圖標(biāo)資源并存儲(chǔ)起來(lái)即可。

除了上面可以參考從DevExpress內(nèi)置圖標(biāo)資源獲取圖標(biāo)的方式外

Winform,開(kāi)發(fā)框架,DevExpress,圖標(biāo)資源

我們還可以選擇我們自己喜歡的圖標(biāo)資源,也就是從系統(tǒng)圖標(biāo)文件中選擇自己喜歡的,如下界面所示。

Winform,開(kāi)發(fā)框架,DevExpress,圖標(biāo)資源

因此我考慮在運(yùn)行時(shí)刻整合兩種不同選擇圖標(biāo)的方式。

我們先來(lái)看看我整合后的圖表選擇界面,如下所示,包含了運(yùn)行時(shí)刻提取DevExpress內(nèi)置圖標(biāo)的功能和從系統(tǒng)文件中選擇圖標(biāo)的功能。

Winform,開(kāi)發(fā)框架,DevExpress,圖標(biāo)資源

3、運(yùn)行時(shí)刻提取DevExpress內(nèi)置圖標(biāo)的功能實(shí)現(xiàn)

首先我們參考設(shè)計(jì)時(shí)刻的界面展示

Winform,開(kāi)發(fā)框架,DevExpress,圖標(biāo)資源

來(lái)設(shè)計(jì)一個(gè)界面來(lái)展示圖標(biāo)信息

Winform,開(kāi)發(fā)框架,DevExpress,圖標(biāo)資源

參考原版的界面,設(shè)計(jì)盡可能貼近即可,另外我們自己加入一個(gè)從系統(tǒng)選擇圖標(biāo)資源的操作。

Winform,開(kāi)發(fā)框架,DevExpress,圖標(biāo)資源

至于圖標(biāo)選中后我們返回對(duì)應(yīng)的Image對(duì)象給調(diào)用者,則通過(guò)事件進(jìn)行處理,以便選中后,即使更新顯示效果。

如下所示,我們定義一個(gè)委托和事件。

/// <summary> /// DevExpress圖標(biāo)和系統(tǒng)圖標(biāo)選擇窗體 /// </summary> public partial class FrmImageGallery : BaseForm {  /// <summary>  /// 自定義一個(gè)委托處理圖標(biāo)選擇  /// </summary>  public delegate void IconSelectHandlerDelegate(Image image, string name);  /// <summary>  /// 圖標(biāo)選擇的事件  /// </summary>  public event IconSelectHandlerDelegate OnIconSelected;  private DXImageGalleryLoader loader = null;  public FrmImageGallery()  {   InitializeComponent();   InitDictItem();//初始化  }    /// <summary>  /// 處理圖標(biāo)選擇的事件觸發(fā)  /// </summary>  public virtual void ProcessIconSelected(Image image, string name)  {   if (OnIconSelected != null)   {    OnIconSelected(image, name);   }  }

然后在內(nèi)置圖標(biāo)顯示中,如果觸發(fā)圖標(biāo)的單擊,我們就觸發(fā)事件,以便讓調(diào)用者更新界面顯示,如下代碼所示。

foreach (GalleryItem item in items[key]){ item.ItemClick += (s, e) => {  //選擇處理  ProcessIconSelected(item.ImageOptions.Image, item.Description); };}

而對(duì)于從系統(tǒng)文件加載文件進(jìn)行顯示圖標(biāo)的,類似的觸發(fā)方式。

/// <summary>  /// 從系統(tǒng)資源中加載圖標(biāo)文件,然后觸發(fā)事件進(jìn)行顯示  /// </summary>  private void txtFilePath_Properties_ButtonClick(object sender, ButtonPressedEventArgs e)  {   string file = GetIconPath();   if (!string.IsNullOrEmpty(file))   {    this.txtFilePath.Text = file;//記錄文件名    this.txtEmbedIcon.Image = LoadIcon(file);//顯示圖片    this.txtEmbedIcon.Size = new System.Drawing.Size(64, 64);    //返回處理    ProcessIconSelected(this.txtEmbedIcon.Image, file);   }  }

這樣我們?cè)诓藛蔚倪x擇圖標(biāo)的時(shí)候,就可以觸發(fā)事件進(jìn)行獲取圖表并更新自身了。

Winform,開(kāi)發(fā)框架,DevExpress,圖標(biāo)資源

private void btnSelectIcon_Click(object sender, EventArgs e)  {   FrmImageGallery dlg = new FrmImageGallery();   dlg.OnIconSelected += (image, name) =>   {    this.txtEmbedIcon.Image = image;   };   dlg.ShowDialog();  }

完成了這些處理,我們?cè)俅螌⒔裹c(diǎn)放在如何提取并展示DevExpress內(nèi)置圖標(biāo)的身上。

Winform,開(kāi)發(fā)框架,DevExpress,圖標(biāo)資源

為了獲取圖表資源里面的分類及大小等信息,我們需要把圖標(biāo)資源進(jìn)行一個(gè)加載出來(lái),然后讀取里面的類別和大小、集合等信息。先定義幾個(gè)變量來(lái)承載這些信息。

/// <summary>  /// 圖標(biāo)分類  /// </summary>  public List<string> Categories { get; set; }  /// <summary>  /// 圖標(biāo)集合  /// </summary>  public List<string> Collection { get; set; }  /// <summary>  /// 圖標(biāo)尺寸  /// </summary>  public List<string> Size { get; set; }

我們知道,DevExpress的圖標(biāo)資源在程序集DevExpress.Utils.DxImageAssemblyUtil.ImageAssembly里面,因此我們需要對(duì)它進(jìn)行讀取,并依次對(duì)各個(gè)資源進(jìn)行處理。

我們來(lái)看看具體的處理代碼,如下所示。

using (System.Resources.ResourceReader reader = GetResourceReader(DevExpress.Utils.DxImageAssemblyUtil.ImageAssembly))   {    System.Collections.IDictionaryEnumerator dict = reader.GetEnumerator();    while (dict.MoveNext())    {     string key = (string)dict.Key as string;     if (!DevExpress.Utils.DxImageAssemblyUtil.ImageProvider.IsBrowsable(key)) continue;     if (key.EndsWith(".png", StringComparison.Ordinal))     {      string reg = @"(?<collection>/S*?)/(?<category>/S*?)/(?<name>/S*)";      var collectionItem = CRegex.GetText(key, reg, "collection");       var categoryItem = CRegex.GetText(key, reg, "category");      string sizeReg = @"_(?<size>/S*)/.";      var sizeItem = CRegex.GetText(key, sizeReg, "size");      if (!this.Collection.Contains(collectionItem))      {       this.Collection.Add(collectionItem);      }      if (!this.Categories.Contains(categoryItem))      {       this.Categories.Add(categoryItem);      }      if (!this.Size.Contains(sizeItem))      {       this.Size.Add(sizeItem);      }      Image image = GetImageFromStream((System.IO.Stream)dict.Value);      if (image != null)      {       var item = new DevExpress.XtraBars.Ribbon.GalleryItem(image, key, key);       if (!ImageCollection.ContainsKey(key))       {        ImageCollection.Add(key, item);       }      }           }    }   }

其中讀取資源的操作代碼是

GetResourceReader(DevExpress.Utils.DxImageAssemblyUtil.ImageAssembly)

這個(gè)代碼它就是從資源里面進(jìn)行獲取對(duì)應(yīng)的圖表資源。

private System.Resources.ResourceReader GetResourceReader(System.Reflection.Assembly imagesAssembly)  {   var resources = imagesAssembly.GetManifestResourceNames();   var imageResources = Array.FindAll(resources, resourceName => resourceName.EndsWith(".resources"));   if (imageResources.Length != 1)   {    throw new Exception("讀取異常");   }   return new System.Resources.ResourceReader(imagesAssembly.GetManifestResourceStream(imageResources[0]));  }

另外,我們根據(jù)圖表的文件名結(jié)構(gòu),我們通過(guò)正則表達(dá)式來(lái)讀取它的對(duì)應(yīng)信息,然后把它的大小、類別、集合信息存儲(chǔ)起來(lái)。

 string reg = @"(?<collection>/S*?)/(?<category>/S*?)/(?<name>/S*)"; var collectionItem = CRegex.GetText(key, reg, "collection");  var categoryItem = CRegex.GetText(key, reg, "category"); string sizeReg = @"_(?<size>/S*)/."; var sizeItem = CRegex.GetText(key, sizeReg, "size");

圖表信息讀取了,我們需要解析它然后存儲(chǔ)起來(lái),把圖標(biāo)的Image對(duì)象放在一個(gè)字典類別里面,方便按照組別進(jìn)行展示。

Image image = GetImageFromStream((System.IO.Stream)dict.Value); if (image != null) {  var item = new DevExpress.XtraBars.Ribbon.GalleryItem(image, key, key);  if (!ImageCollection.ContainsKey(key))  {   ImageCollection.Add(key, item);  } }

有了這些資源,我們對(duì)它們進(jìn)行搜索就顯得很方便了,我們?nèi)绻枰鶕?jù)文件名或者其他條件進(jìn)行查詢集合的數(shù)據(jù),提供一個(gè)通用的方法即可,如下代碼所示。

/// <summary>  /// 根據(jù)條件獲取集合  /// </summary>  /// <returns></returns>  public Dictionary<string, GalleryItemCollection> Search(List<string> collection, List<string> categories,    List<string> size, string fileName = "")  {   Dictionary<string, GalleryItemCollection> dict = new Dictionary<string, GalleryItemCollection>();   GalleryItemCollection list = new GalleryItemCollection();   foreach (var key in ImageCollection.Keys)   {    //使用正則表達(dá)式獲取圖標(biāo)文件名中的集合、類別、大小等信息    string reg = @"(?<collection>/S*?)/(?<category>/S*?)/(?<name>/S*)";    var collectionItem = CRegex.GetText(key, reg, "collection");    var categoryItem = CRegex.GetText(key, reg, "category");    string sizeReg = @"_(?<size>/S*)/.";    var sizeItem = CRegex.GetText(key, sizeReg, "size");    //如果是查詢處理,把記錄放到查詢結(jié)果里面    if (!string.IsNullOrEmpty(fileName))    {     if(key.Contains(fileName))     {      list.Add(ImageCollection[key]);     }     dict["查詢結(jié)果"] = list;    }    else    {     //如果是集合和列表中包含的,把它們按類別添加到字典里面     if (collection.Contains(collectionItem) &&       categories.Contains(categoryItem) &&       size.Contains(sizeItem))     {      if (!dict.ContainsKey(categoryItem))      {       GalleryItemCollection cateList = new GalleryItemCollection();       cateList.Add(ImageCollection[key]);       dict[categoryItem] = cateList;      }      else      {       GalleryItemCollection cateList = dict[categoryItem];       cateList.Add(ImageCollection[key]);      }     }    }   }   return dict;  }

這次搜索就直接基于已有的集合ImageCollection進(jìn)行搜索的了,不用再次讀取程序集并依次分析它,速度提供不少的。

由于圖表資源的處理是比較耗時(shí)的,我們把整個(gè)圖標(biāo)加載的類作為一個(gè)靜態(tài)的對(duì)象緩存起來(lái),這樣下次使用直接從緩存里面拿,對(duì)應(yīng)的資源也不用重新加載,更好的提高我們重用的效果了,體驗(yàn)更好了。

/// <summary> /// 圖標(biāo)庫(kù)加載處理 /// </summary> public class DXImageGalleryLoader {  /// <summary>  /// 圖標(biāo)字典類別集合  /// </summary>  public Dictionary<string, GalleryItem> ImageCollection { get; set; }  /// <summary>  /// 圖標(biāo)分類  /// </summary>  public List<string> Categories { get; set; }  /// <summary>  /// 圖標(biāo)集合  /// </summary>  public List<string> Collection { get; set; }  /// <summary>  /// 圖標(biāo)尺寸  /// </summary>  public List<string> Size { get; set; }  /// <summary>  /// 使用緩存處理,獲得對(duì)象實(shí)例  /// </summary>  public static DXImageGalleryLoader Default  {   get   {    System.Reflection.MethodBase method = System.Reflection.MethodBase.GetCurrentMethod();    string keyName = string.Format("{0}-{1}", method.DeclaringType.FullName, method.Name);    var result = MemoryCacheHelper.GetCacheItem<DXImageGalleryLoader>(keyName,      delegate () { return new DXImageGalleryLoader().LoadData(); },      new TimeSpan(0, 30, 0));//30分鐘過(guò)期    return result;   }  }

以上代碼通過(guò)

public static DXImageGalleryLoader Default

定義了一個(gè)靜態(tài)的實(shí)例屬性,這樣這個(gè)DXImageGalleryLoader 實(shí)例只會(huì)在程序第一次使用的時(shí)候構(gòu)建并加載圖片資源,后續(xù)都是從緩存里面讀取,提高響應(yīng)速度的同時(shí),也會(huì)記住上次的選擇界面內(nèi)容。

以上就是整個(gè)功能的處理思路,以及一步步的優(yōu)化處理,以便實(shí)現(xiàn)功能展示的同時(shí),也提高響應(yīng)速度,最終界面就是我們開(kāi)始的時(shí)候介紹的那樣。

Winform,開(kāi)發(fā)框架,DevExpress,圖標(biāo)資源

Winform,開(kāi)發(fā)框架,DevExpress,圖標(biāo)資源

單擊或者選中系統(tǒng)圖標(biāo)后, 需要設(shè)置的按鈕或者界面,就會(huì)及時(shí)更新圖標(biāo)展示,體驗(yàn)效果還是非常不錯(cuò)的。

由于這個(gè)界面功能的通用性,我把它作為系統(tǒng)界面基礎(chǔ)模塊,放到了我的框架BaseUIDx里面,各個(gè)系統(tǒng)模塊都可以調(diào)用了。

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)VEVB武林網(wǎng)的支持。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到c#教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
成人性生活视频免费看| 国产精品伦理在线| 亚洲一区二区欧美| 日韩影视一区二区三区| 亚洲国产精品久久久久婷婷老年| 国内精品久久久| 欧美日韩成人在线视频| 国产一区欧美一区| japanese在线视频| 免费a在线看| 51午夜精品国产| 天天射天天色天天干| 成人在线一区二区| 色综合综合网| 国产丝袜一区二区| 久久人妻少妇嫩草av无码专区| 日韩一区二区三区高清| 久久久国产精品不卡| 在线精品视频视频中文字幕| free性中国hd国语露脸| 国产麻豆精品视频一区二区| 粉嫩精品一区二区三区在线观看| 国产亚洲激情| 精品视频亚洲| gay网站在线| 日韩激情av在线免费观看| 亚洲一二三四久久| 嫩草在线播放| 国产亚洲精品超碰| 精品丝袜在线| 星空大象在线观看免费播放| 日韩久久精品| 久久精品这里都是精品| 欧美电影免费观看高清完整| 国产免费一区视频观看免费| 久久九九免费视频| 日av中文字幕| 成人在线直播| 久艹视频在线免费观看| 一二三区在线观看| 极品尤物一区| 国产免费无遮挡吸奶头视频| 亚洲 欧美 日韩系列| 奶水喷射视频一区| 久久九九热视频| 午夜精品久久久久99蜜桃最新版| 一本一本大道香蕉久在线精品| 国产日韩一区欧美| 77777影视视频在线观看| 亚洲欧美精品一区二区| 日韩理论片av| 国产清纯美女被跳蛋高潮一区二区久久w| 亚洲天堂激情| 成年人在线播放| 午夜影院免费| 久久精品五月天| 国产成人h网站| 五月天综合网| 亚洲精品在线免费| 日本不卡在线观看视频| 97久久超碰| 天堂av网手机版| 亚洲精品欧美精品| 91精品欧美综合在线观看最新| 第一sis亚洲原创| 国产在线视频一区| 亚洲精品一区二| 欧美日本在线看| 日本高清视频免费观看| 丝袜美腿成人在线| 欧美视频一区二区三区在线观看| 欧美三级伦理在线| 国产日韩亚洲| 午夜精产品一区二区在线观看的| 婷婷色在线资源| 天天干天天操天天做| 日韩成人三级视频| 毛片在线视频播放| 亚洲成人动漫av| 日本久久久久久久久久久久| 国产精品视屏| 亚洲AV无码精品色毛片浪潮| 黄色免费网站视频| 国模私拍一区二区国模曼安| 四虎影院成人在线观看| 日韩精品视频一二三| 欧美黄色免费看| 一本久道高清无码视频| 性欧美大战久久久久久久| 丰满少妇乱子伦精品看片| 国产素人视频在线观看| 视频二区不卡| 超薄肉色丝袜脚交一区二区| www久久com| 欧美精品三级日韩久久| 日本aⅴ亚洲精品中文乱码| 亚洲香蕉久久| 99re6热在线精品视频播放| 中文资源在线网| 成人深夜福利app| 久久久成人免费视频| 午夜久久电影网| 性做久久久久久| av一区和二区| 97免费高清电视剧观看| 夜夜爽视频导航| 在线播放一级片| 欧美日韩免费网站| 国产精品19乱码一区二区三区| 九九热这里有精品| 精品久久久久久久久久岛国gif| 亚洲成人一区二区| 日本三级理论片| 日日摸夜夜添夜夜添毛片av| 成人激情久久| 91高清视频免费观看| 久久亚洲精品中文字幕| 你懂的视频一区二区| 日韩私人影院| 九九视频直播综合网| 色无极影院亚洲| 性欧美xxx69hd高清| 免费xxxx性欧美18vr| 国产香蕉免费精品视频| 免费看黄资源大全高清| 日本熟女毛茸茸| 香蕉精品999视频一区二区| 精东传媒在线观看| 亚洲精品乱码久久久久久黑人| 欧美三级日韩三级| 久久国产精品免费一区二区三区| 日韩综合久久| 日本亚洲欧洲精品| 国产精品视频午夜| 97久久人人超碰caoprom欧美| 亚洲一区区二区| 日日夜夜免费精品| 亚洲精品中字| 麻豆av电影| 狠狠狠色丁香婷婷综合激情| 国产精品密蕾丝视频下载| 久久国产劲爆∧v内射| 欧美在线日韩在线| 久久婷婷综合色| 国产视频网站在线| 久久久久久久久久久久久久av| canopen超线视频网线的应用| 国产精品爽黄69天堂a| 亚洲国产精品成人久久蜜臀| 国产成人综合视频| 四虎4hu影库永久地址| 手机版av在线| 在线观看麻豆| 国产成人精品免高潮费视频| 美女视频黄的免费| www.av麻豆| 爽爽免费视频| 日本大片在线播放| 7色.com| 在线中文字幕观看| 久久久精品免费| 国产在线观看不卡| www.xx日本| 国产片侵犯亲女视频播放| 在线观看污视频| 国产精品一区在线看| 少妇与大狼拘作爱性a| 欧洲成人在线观看| 午夜亚洲伦理| 久久中文字幕电影| 涩涩视频在线观看下载| 9i在线看片成人免费| 国产精品夜间视频香蕉| 99免费精品| 99久久99久久精品| 国产成人精品亚洲| 欧美精品中文字幕一区二区| 一个人在线观看免费视频www| 国产精品国产三级在线观看| 国产伦精品一区二区三区视频我| 在线一区av| 日韩av手机在线观看| 亚洲一区精品在线观看| 91手机在线播放| 亚洲精品视频网上网址在线观看| 亚洲911精品成人18网站| 亚洲综合免费观看高清完整版| а√最新版天堂中文在线| 日韩三级电影网| 国产成人午夜精品| 看全色黄大色黄大片免责看的| 国产日产欧美精品一区二区三区| 色天天综合色天天久久| 91精品一区二区三区综合| 欧美剧情电影在线观看完整版免费励志电影| 国内精品久久久久久中文字幕| 欧美性色黄在线视频| 992tv在线观看免费进| 久久久久女人精品毛片九一| 国产精品videossex撒尿| 亚洲成人精品视频在线观看| www深夜成人a√在线| 九九在线精品视频| 久久亚洲风情| 伊人久久大香线蕉无限次| 中文字幕三区| 国产97色在线 | 日韩| 色香欲www7777综合网| 欧美在线|欧美| 亚洲精品v天堂中文字幕| 在线观看天堂av| bt天堂新版中文在线地址| 日韩中文字幕视频在线| 91高清视频在线免费观看| 国产视频每日更新| 波多野结衣的一区二区三区| 美女一区二区在线观看| 日本不卡二区高清三区| 久久亚洲精精品中文字幕| 亚洲精品一区二区三区99| 亚洲v中文字幕| 中文字幕亚洲在线观看| 97人人澡人人爽91综合色| 成人天堂资源www在线| 久久久国产精品黄毛片| 日韩免费中文字幕| 精品少妇一二三区| 精品91福利视频| 91黄视频在线观看| 九色精品美女在线| 青娱乐国产91| 7777kkkk成人观看| 欧美在线激情| 色窝窝无码一区二区三区成人网站| 国产高清免费在线观看| 国产成人禁片免费观看视频| 欧美另类在线观看| 久草在线免费二| 免费在线观看av网站| 天海翼精品一区二区三区| 小明精品国产一区二区三区| 久久久神马电影| 在线人成动漫视频在线观看| 亚洲瘦老头同性70tv| 久久99久久| 亚洲女人天堂色在线7777| 老师我好爽再深一点的视频| 国产精品成人观看视频国产奇米| 中文字幕一区二区三区人妻不卡| av官网在线观看| 亚洲精品永久www嫩草| 国产成人拍精品视频午夜网站| 最新高清无码专区| 久久综合之合合综合久久| 干日本少妇视频| av午夜精品一区二区三区| 国语对白做受xxxxx在线中国| av免费在线播放网站| 国产一级片大全| 日韩美女一级视频| 影音先锋日韩在线| 成人美女黄网站| 亚洲精品无遮挡| caoporn国产一区二区| 亚洲 小说 欧美 激情 另类| 污的视频网站| 欧美日韩中文字幕在线视频| 好吊色视频一区二区三区| 99久久亚洲精品蜜臀| 欧美爱爱网站| 国产精品一卡二卡| aaa人片在线| 免费h精品视频在线播放| 激情图片中文字幕| 成人日韩在线电影| 日韩av电影免费观看高清完整版| 无码人妻熟妇av又粗又大| 国内福利视频| 国产一二三四视频| 天堂网.www在线资源| 欧美影院天天5g天天爽| www.youjizz.com在线| 亚洲AV成人无码精电影在线| 老妇女50岁三级| 99久久99热这里只有精品| 日本特黄久久久高潮| 成年人午夜视频在线观看| 午夜成人亚洲理伦片在线观看| 国产在线乱码一区二区三区| 视频在线99re| 五月综合色婷婷| 国产精品情侣呻吟对白视频| 中文av字幕在线观看| 精品伦理精品一区| 麻豆成人久久精品二区三区红| 免费精品一区二区三区在线观看| 欧美在线免费视屏| 欧美人与动牲性行为| 中文字幕1区2区3区| 国产乡下妇女做爰毛片| 午夜看片在线免费| 亚洲国产一区二区三区高清| 情事1991在线| 欧美激情在线看| 精品97人妻无码中文永久在线| 99在线国产| 91社区在线| 久久国产精品亚洲va麻豆| 日韩国产高清一区| 精品少妇久久久| 亚洲aⅴ乱码精品成人区| 男人插女人欧美| 五月婷婷亚洲| 成人午夜sm精品久久久久久久| 日韩精品极品在线观看| 麻豆一区二区三区四区精品蜜桃| 欧美极品少妇xxxxⅹ高跟鞋| 亚洲砖区区免费| 色婷婷久久综合中文久久蜜桃av| 欧美天堂社区| 9999精品视频| 日韩特级黄色片| 亚洲一区二区在线免费观看视频| 国产人成精品一区二区三| 伊人中文字幕在线观看| 婷婷午夜社区一区| 成人在线免费看| 五月婷婷激情综合网|