精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

MetroGridHelper:WP7設計師與開發人員的得力助手

譯文
移動開發
如果最終外觀設計方案能夠與Windows Phone上現有的性能計數器相似,那么肯定會大受歡迎——在調試時,我們能夠將這套網格重疊覆蓋在整個應用程序框架上,使其成為獨立而完整的全局顯示方案。

作者簡介:Jeff Wilcox,微軟高級軟件開發工程師,不久前,調往微軟Windows Azure組,負責微軟云技術的開源項目。Jeff Wilcox曾負責開發了Windows Phone平臺的Foursqaure客戶端,并參與了無數Silverlight工具包、Windows Phone 7.0、7.1開發包,Windows Phone用戶界面控制、幫助,以及許多其他重要項目。

[[79339]] 
Jeff Wilcox

【51CTO譯文】作為沉浸于開發行業多年的老手,大家一定對這些話題并不陌生:整理頁面邊距、對齊圖像內容以及讓自己的應用程序更美觀。隨著軟件消費者中“外貌協會”成員的比重不斷上升,用戶界面不夠搶眼的應用幾乎已經無法在市場上占得一席之地。

不久前,我有幸參加了Windows Phone設計團隊舉辦的“美觀開發空間”活動。我要由衷地贊嘆,這是一次真正的創意空間交流活動,到處是有趣的參與者、舒緩的音樂以及為市場創造出更好、更漂亮的應用程序的熱烈渴求。

在活動中我一直坐在兩位用戶體驗設計師Corrina與Arturo身邊,與他們討論設計工作中的原則性取向;很偶然地,我們的話題轉移到一副簡潔而相當美觀的網格圖上,這也正是二位在Windows Phone平臺上開發的主要焦點。圖像由多個紅色正方形構成,每個方形為25x25像素,兩個方形之間相隔12像素,也就是說每個獨立單元都擁有寬高為24像素的反襯背景。(還是那句話,Metro風格要求邊框長度始終為12的整數)

設計將使用典型的Photoshop層來容納這些方形,或者是在應用程序頁面之上插入XAML借以完成圖形對齊、網格設計及位置調整等等。

我的想法是:如果最終外觀設計方案能夠與Windows Phone上現有的性能計數器相似,那么肯定會大受歡迎——在調試時,我們能夠將這套網格重疊覆蓋在整個應用程序框架上,使其成為獨立而完整的全局顯示方案。就在活動過程當中,我即興用代碼將自己的想法表達了出來,下面請大家分享我的成果。

要使用這款計數器,我們只需打開App.xaml.cs文件(這里囊括了其它多款性能計數器),并將其添加進來。如果大家只是打算簡單設計一下,那么我建議各位直接將其啟用,這樣一來我們就能夠讓它作用于實機及模擬器中的應用程序。之所以要把它與模擬器關聯起來,是因為我們能夠將最終顯示效果通過截圖與朋友及家人分享,并聆聽他們在圖像位置方面提出的意見。

  1. // Show graphics profiling information while debugging.  
  2. if (System.Diagnostics.Debugger.IsAttached)  
  3. {  
  4.     // Display the current frame rate counters.  
  5.     Application.Current.Host.Settings.EnableFrameRateCounter = true;  
  6.    
  7.     // Display the metro grid helper.  
  8.     MetroGridHelper.IsVisible = true

以下是這段簡單的代碼在與小型應用程序協作時顯示出的效果:

效果

在這個例子中,我遇到了Windows Phone設計中的經典“bug”:文本信息區塊之一在插入過程中未能正確顯示應有的Metro風格。也就是說,該區塊的左側邊距為“0”,而不是Metro要求的12像素,這使得對應文字內容比其它字體更靠左。通過上圖中正方形的對比,相信大家能更清晰地理解我遇到的問題,字體錯位現象十分明顯。

如果大家不喜歡默認的紅色以及~0.15的不透明度,我還為不透明度及顏色添加了簡單的靜態屬性設置選項,希望能讓各位獲得自己理想中的方形單元效果。在運行過程中,可見屬性不會顯示出來,但請大家注意,只要網格本身仍然存在于可視化元素列表當中,就會占用對應的性能資源(因此請務必在應用程序的發布版本中把網格去掉,否則會造成毫無意義的資源浪費)。

源代碼

我已經在NuGet上發布過源文件——這應該是大家在自己的項目中使用這款小成品的最佳方式。如果今后我做出任何修正或添加某些功能,各位也將會在NuGet網站上及時找到最新版本。

◆確保自己已經安裝了NuGet(http://www.nuget.org/)

◆使用控制臺或軟件包管理器安裝該軟件包,我把它命名為MetroGridHelper

PM> Install-Package MetroGridHelper

當然,大家也可以將這部分源代碼在項目中整理成一個全新的文件,MetroGridHelper.cs:

  1. // (c) Copyright Microsoft Corporation.  
  2. // This source is subject to the Microsoft Public License (Ms-PL).  
  3. // Please see http://go.microsoft.com/fwlink/?LinkID=131993 for details.  
  4. // All other rights reserved.  
  5.  
  6. using System.Collections.Generic;  
  7. using System.Diagnostics;  
  8. using System.Windows.Controls;  
  9. using System.Windows.Media;  
  10. using System.Windows.Shapes;  
  11.  
  12. namespace System.Windows  
  13. {  
  14.     /// <summary>  
  15.     /// A utility class that overlays a designer-friendly grid on top of the  
  16.     /// application frame, for use similar to the performance counters in  
  17.     /// App.xaml.cs. The color and opacity are configurable. The grid contains  
  18.     /// a number of squares that are 24x24, offset with 12px gutters, and all  
  19.     /// 24px away from the edge of the device.  
  20.     /// </summary>  
  21.     public static class MetroGridHelper  
  22.     {  
  23.         private static bool _visible;  
  24.         private static double _opacity = 0.15;  
  25.         private static Color _color = Colors.Red;  
  26.         private static List<Rectangle> _squares;  
  27.         private static Grid _grid;  
  28.    
  29.         /// <summary>  
  30.         /// Gets or sets a value indicating whether the designer grid is  
  31.         /// visible on top of the application's frame.  
  32.         /// </summary>  
  33.         public static bool IsVisible  
  34.         {  
  35.             get 
  36.             {  
  37.                 return _visible;  
  38.             }  
  39.             set 
  40.             {  
  41.                 _visible = value;  
  42.                 UpdateGrid();  
  43.             }  
  44.         }  
  45.    
  46.         /// <summary>  
  47.         /// Gets or sets the color to use for the grid's squares.  
  48.         /// </summary>  
  49.         public static Color Color  
  50.         {  
  51.             get { return _color; }  
  52.             set 
  53.             {  
  54.                 _color = value;  
  55.                 UpdateGrid();  
  56.             }  
  57.         }  
  58.    
  59.         /// <summary>  
  60.         /// Gets or sets a value indicating the opacity for the grid's squares.  
  61.         /// </summary>  
  62.         public static double Opacity  
  63.         {  
  64.             get { return _opacity; }  
  65.             set 
  66.             {  
  67.                 _opacity = value;  
  68.                 UpdateGrid();  
  69.             }  
  70.         }  
  71.    
  72.         /// <summary>  
  73.         /// Updates the grid (if it already has been created) or initializes it  
  74.         /// otherwise.  
  75.         /// </summary>  
  76.         private static void UpdateGrid()  
  77.         {  
  78.             if (_squares != null)  
  79.             {  
  80.                 var brush = new SolidColorBrush(_color);  
  81.                 foreach (var square in _squares)  
  82.                 {  
  83.                     square.Fill = brush;  
  84.                 }  
  85.                 if (_grid != null)  
  86.                 {  
  87.                     _grid.Visibility = _visible ? Visibility.Visible : Visibility.Collapsed;  
  88.                     _grid.Opacity = _opacity;  
  89.                 }  
  90.             }  
  91.             else 
  92.             {  
  93.                 BuildGrid();  
  94.             }  
  95.         }  
  96.    
  97.         /// <summary>  
  98.         /// Builds the grid.  
  99.         /// </summary>  
  100.         private static void BuildGrid()  
  101.         {  
  102.             _squares = new List<Rectangle>();  
  103.    
  104.             var frame = Application.Current.RootVisual as Frame;  
  105.             if (frame == null || VisualTreeHelper.GetChildrenCount(frame) == 0)  
  106.             {  
  107.                 Deployment.Current.Dispatcher.BeginInvoke(BuildGrid);  
  108.                 return;  
  109.             }  
  110.    
  111.             var child = VisualTreeHelper.GetChild(frame, 0);  
  112.             var childAsBorder = child as Border;  
  113.             var childAsGrid = child as Grid;  
  114.             if (childAsBorder != null)  
  115.             {  
  116.                 // Not a pretty way to control the root visual, but I did not  
  117.                 // want to implement using a popup.  
  118.                 var content = childAsBorder.Child;  
  119.                 if (content == null)  
  120.                 {  
  121.                     Deployment.Current.Dispatcher.BeginInvoke(BuildGrid);  
  122.                     return;  
  123.                 }  
  124.                 childAsBorder.Child = null;  
  125.                 Deployment.Current.Dispatcher.BeginInvoke(() =>  
  126.                 {  
  127.                     Grid newGrid = new Grid();  
  128.                     childAsBorder.Child = newGrid;  
  129.                     newGrid.Children.Add(content);  
  130.                     PrepareGrid(frame, newGrid);  
  131.                 });  
  132.             }  
  133.             else if (childAsGrid != null)  
  134.             {  
  135.                 PrepareGrid(frame, childAsGrid);  
  136.             }  
  137.             else 
  138.             {  
  139.                 Debug.WriteLine("Dear developer:");  
  140.                 Debug.WriteLine("Unfortunately the design overlay feature requires that the root frame visual");  
  141.                 Debug.WriteLine("be a Border or a Grid. So the overlay grid just isn't going to happen.");  
  142.                 return;  
  143.             }  
  144.         }  
  145.    
  146.         /// <summary>  
  147.         /// Does the actual work of preparing the grid once the parent frame is  
  148.         /// in the visual tree and we have a Grid instance to work with for  
  149.         /// placing the chilren.  
  150.         /// </summary>  
  151.         /// <param name="frame">The phone application frame.</param>  
  152.         /// <param name="parent">The parent grid to insert the sub-grid into.</param>  
  153.         private static void PrepareGrid(Frame frame, Grid parent)  
  154.         {  
  155.             var brush = new SolidColorBrush(_color);  
  156.    
  157.             _grid = new Grid();  
  158.             _grid.IsHitTestVisible = false;  
  159.    
  160.             // To support both orientations, unfortunately more visuals need to  
  161.             // be used. An alternate implementation would be to react to the  
  162.             // orientation change event and re-draw/remove squares.  
  163.             double width = frame.ActualWidth;  
  164.             double height = frame.ActualHeight;  
  165.             double max = Math.Max(width, height);  
  166.    
  167.             for (int x = 24; x < /*width*/ max; x += 37)  
  168.             {  
  169.                 for (int y = 24; y < /*height*/ max; y += 37)  
  170.                 {  
  171.                     var rect = new Rectangle  
  172.                     {  
  173.                         Width = 25,  
  174.                         Height = 25,  
  175.                         VerticalAlignment = System.Windows.VerticalAlignment.Top,  
  176.                         HorizontalAlignment = System.Windows.HorizontalAlignment.Left,  
  177.                         Margin = new Thickness(x, y, 0, 0),  
  178.                         IsHitTestVisible = false,  
  179.                         Fill = brush,  
  180.                     };  
  181.                     _grid.Children.Add(rect);  
  182.                     _squares.Add(rect);  
  183.                 }  
  184.             }  
  185.    
  186.             _grid.Visibility = _visible ? Visibility.Visible : Visibility.Collapsed;  
  187.             _grid.Opacity = _opacity;  
  188.    
  189.             // For performance reasons a single surface should ideally be used  
  190.             // for the grid.  
  191.             _grid.CacheMode = new BitmapCache();  
  192.    
  193.             // Places the grid into the visual tree. It is never removed once  
  194.             // being added.  
  195.             parent.Children.Add(_grid);  
  196.         }  
  197.     }  

 

原文鏈接http://www.jeff.wilcox.name/2011/10/metrogridhelper/    核子可樂 譯

責任編輯:王曉東 來源: 51CTO.com
相關推薦

2019-09-01 23:48:59

開發代碼編程

2013-03-26 13:45:34

開發人員設計師創業

2010-08-16 09:21:35

Windows Pho

2024-12-20 08:10:00

2011-04-30 16:56:45

Windows PhoiOS

2024-02-06 09:53:45

Pythonget()函數Dictionary

2025-08-04 07:36:09

Apache開源監控

2024-09-27 17:06:13

2015-07-28 16:38:56

App移動開發

2023-06-01 08:17:37

UX開發

2016-01-25 09:32:37

容器網絡SDN

2010-08-09 16:09:25

2012-05-30 15:15:42

ibmdw

2023-03-15 07:12:53

企業開發人員提供商

2009-11-23 20:07:51

ibmdw開發

2021-02-19 09:33:01

kubernetesJAVA服務

2009-12-11 14:50:14

Visual Basi

2016-03-09 12:11:33

Web開發人員簡單步驟

2021-04-15 09:42:21

程序開發軟件開發
點贊
收藏

51CTO技術棧公眾號

亚州av日韩av| 国产盗摄一区二区| 精品亚洲国内自在自线福利| 久久中文久久字幕| 亚洲图片欧美另类| 欧美大片免费| 亚洲激情在线播放| 精品国产一区二区三| 中文字幕在线观看你懂的| 欧美日本免费| 一个人www欧美| 91精产国品一二三| 美女网站视频一区| 亚洲五月六月丁香激情| 午夜精品电影在线观看| 懂色av蜜臀av粉嫩av分享吧| 日韩成人免费看| 久久久噜噜噜久久中文字免| 亚洲毛片亚洲毛片亚洲毛片| 都市激情亚洲欧美| 欧美精品三级日韩久久| 噜噜噜久久亚洲精品国产品麻豆| 日本在线免费中文字幕| 91在线丨porny丨国产| 成人亚洲欧美一区二区三区| 六月丁香激情综合| 国产精品大片免费观看| 色婷婷av一区二区三区在线观看| 久久久午夜精品福利内容| 在线免费成人| 91久久精品一区二区二区| 男女激情免费视频| 免费看美女视频在线网站| 久久五月婷婷丁香社区| 国产精品免费在线| 99久久免费国产精精品| 美女网站色91| 国产不卡在线观看| 看片网址国产福利av中文字幕| 凹凸成人精品亚洲精品密奴| 亚洲男人天堂九九视频| 亚洲av无码一区二区三区网址 | 亲子乱一区二区三区电影| 91麻豆精品成人一区二区| 精品国内自产拍在线观看视频| 日韩av网址在线| 黄色av电影网站| 国产剧情一区二区在线观看| 欧美男男青年gay1069videost| 能在线观看的av网站| 蜜桃av在线| 激情成人中文字幕| 2018国产在线| segui88久久综合| 亚洲成人免费电影| 日本a视频在线观看| 免费看电影在线| 亚洲高清久久久| 人人妻人人做人人爽| 国模私拍视频在线播放| 亚洲制服丝袜av| 久久久久99精品成人片| 深夜国产在线播放| 亚洲成av人片www| www在线观看免费| 人人草在线视频| 色婷婷综合久久久久中文一区二区| 欧美a v在线播放| 国模冰冰炮一区二区| 91福利精品第一导航| 久久婷婷国产91天堂综合精品| 日韩电影网站| 欧美日韩一区二区三区免费看| 激情五月俺来也| 青草伊人久久| 亚洲成人网久久久| 人妻大战黑人白浆狂泄| 国产九色在线| 国产蜜臀97一区二区三区| 欧美福利精品| 在线国产情侣| 一区二区三区四区高清精品免费观看 | 鲁大师精品99久久久| 亚洲欧美在线x视频| 国产全是老熟女太爽了| 清纯唯美综合亚洲| 欧美高清自拍一区| 亚洲天堂一区在线| 麻豆精品蜜桃视频网站| 91在线在线观看| 天堂在线中文字幕| 精品亚洲成av人在线观看| 91久久精品一区二区别| 亚洲AV成人无码一二三区在线| 国产欧美va欧美不卡在线| 最新视频 - x88av| 涩涩视频在线免费看| 精品视频免费看| 亚洲图片欧美另类| 日韩一区二区在线| 97视频在线播放| 亚洲无码精品国产| 99re视频精品| 精品国产三级a∨在线| 成人免费直播| 精品美女一区二区三区| 性欧美精品中出| 激情av一区| 国产精品午夜视频| 天天综合在线视频| 风间由美一区二区三区在线观看| 欧美久久久久久一卡四| 国产黄色小视频在线| 狠狠综合久久av一区二区小说 | 国产精品a成v人在线播放| 男人操女人的视频在线观看欧美| 丁香婷婷久久久综合精品国产 | 国产精品麻豆99久久久久久| 无码 制服 丝袜 国产 另类| 精品乱码一区二区三区四区| 日韩精品有码在线观看| 特级片在线观看| 琪琪一区二区三区| 欧美日韩精品中文字幕一区二区| 18加网站在线| 91.麻豆视频| 国产精品扒开腿做爽爽| 黄色欧美日韩| 亚洲综合社区网| 77777影视视频在线观看| 天天av天天翘天天综合网色鬼国产| 性鲍视频在线观看| 婷婷综合伊人| 国产女精品视频网站免费| 色吊丝在线永久观看最新版本| 亚洲自拍偷拍av| 一个人看的视频www| 99精品视频精品精品视频| 国产第一区电影| 免费在线观看一级毛片| 五月天丁香久久| 免费不卡的av| 精品电影一区| 国产欧美日韩亚洲| 成人三级小说| 亚洲激情免费观看| 国产精品a成v人在线播放| 成人性生交大片免费看视频在线 | av理论在线观看| 欧美巨大另类极品videosbest | 精品人妻在线视频| 国产精品v亚洲精品v日韩精品| 亚洲一区免费网站| 伊人影院在线视频| 日韩精品资源二区在线| 青青操国产视频| 成人免费看黄yyy456| 无码粉嫩虎白一线天在线观看| julia中文字幕一区二区99在线| 欧美精品在线观看91| www.色婷婷.com| 亚洲国产一区在线观看| 久久人人妻人人人人妻性色av| 亚洲精品极品| 日本a级片久久久| 成人一区视频| 久久资源免费视频| 亚洲伦理在线观看| 精品久久久视频| 老牛影视av老牛影视av| 免费高清成人在线| av久久久久久| 美女网站色精品尤物极品姐弟| 日韩美女免费视频| 免费网站看v片在线a| 91精品国产乱| 国产成人无码精品久久久久| 国产亚洲综合在线| 在线观看日本一区二区| 欧美日韩免费| 欧美一级二级三级| 国产精品一区二区三区四区在线观看 | 国产精品无码一区二区三| 久久深夜福利| 国产a级片免费看| 欧美黄色影院| 国产免费一区二区三区香蕉精| 国产精品一区hongkong| 精品香蕉一区二区三区| 一级黄色短视频| 亚洲成人综合在线| 少妇视频在线播放| 成人精品一区二区三区中文字幕| 国产av无码专区亚洲精品| 国产精品精品| 久久综合中文色婷婷| 深夜福利亚洲| 久久久久亚洲精品国产| av在线电影观看| 精品国偷自产国产一区| 最好看的日本字幕mv视频大全| 亚洲一区二区三区中文字幕| 国产成人精品无码免费看夜聊软件| 久久成人av少妇免费| 久草资源站在线观看| 久久久久久久久99精品大| 久久精品女人的天堂av| 高清国产一区二区三区四区五区| 69**夜色精品国产69乱| 成人在线观看亚洲| 亚洲视频一区二区| 免费av一级片| 日韩一区二区在线播放| 亚洲中文无码av在线| 午夜影视日本亚洲欧洲精品| 永久免费看片视频教学| 久久这里都是精品| 日韩女优在线视频| 国产精品亚洲人在线观看| 亚洲视频在线观看一区二区三区| 亚洲精品婷婷| 91国在线高清视频| 亚洲精品国产成人影院| 日韩在线第一区| 亚洲另类春色校园小说| 国产精品免费一区二区三区观看| 精品中文字幕一区二区三区| 国产精品免费小视频| 亚洲女同av| 26uuu另类亚洲欧美日本老年| 日本在线视频网址| 欧美精品一区三区| 二区在线播放| 乱亲女秽乱长久久久| 日本综合在线| 日韩在线免费高清视频| 番号集在线观看| 国产午夜精品视频| 精品欧美不卡一区二区在线观看| 亚洲大胆美女视频| 成人小说亚洲一区二区三区| 日韩久久久精品| 精品国产av一区二区三区| 777亚洲妇女| 国产又粗又黄又爽| 欧美日韩另类国产亚洲欧美一级| 波多野结衣黄色网址| 欧美在线观看视频一区二区 | 国产原创在线观看| 国产一区二区三区在线免费观看 | 欧美国产亚洲一区| 日韩午夜在线| 欧美精品自拍视频| 日韩一级大片| 亚洲午夜无码av毛片久久| 国产亚洲精品自拍| 水蜜桃色314在线观看| 999在线观看精品免费不卡网站| 精品少妇在线视频| 亚洲一区欧美二区| 亚洲 欧美 另类人妖| 久久99国产精品久久99果冻传媒| 第一区免费在线观看| 国产一区二区三区香蕉| www.四虎精品| 91麻豆成人久久精品二区三区| 久久美女免费视频| 国产精品不卡在线| 欧美国产精品一二三| 亚洲成av人在线观看| 日本一区二区免费电影| 欧美午夜精品久久久久久孕妇| 一区二区三区免费在线| 日韩视频免费直播| 亚洲人午夜射精精品日韩| 国产一区二区三区精品久久久 | 亚洲日本va午夜在线影院| 欧美黄色免费观看| 黑丝美女久久久| 最近中文字幕免费在线观看| 日韩一区二区三区四区| 午夜影院在线视频| 最近2019中文字幕一页二页| av网站网址在线观看| 97在线看免费观看视频在线观看| 日日av拍夜夜添久久免费| 91精品美女在线| 国内毛片久久| 亚洲欧美精品在线观看| 欧美三区不卡| 亚洲精品乱码久久久久久自慰| 精品一区中文字幕| 精品中文字幕在线播放| 国产精品视频一二三| www.51色.com| 97se亚洲国产综合自在线不卡| 永久免费av无码网站性色av| 亚洲黄色小说网站| 日韩精品一区不卡| 欧美成人精精品一区二区频| 免费在线黄色网址| 色与欲影视天天看综合网| 色豆豆成人网| 俄罗斯精品一区二区三区| 国内成人自拍| 日韩中字在线观看| 狠狠色丁香婷婷综合| av黄色免费网站| 一区二区视频免费在线观看| 真实新婚偷拍xxxxx| 亚洲高清免费观看高清完整版| 香蕉视频免费在线播放| 浅井舞香一区二区| 一区视频网站| 超碰97免费观看| 日精品一区二区| 无码精品一区二区三区在线播放| 亚洲素人一区二区| 亚洲国产无线乱码在线观看| 亚洲第一精品自拍| 亚洲婷婷噜噜| 91精品久久久久久久久久久| 国产精品视频一区二区三区四蜜臂| 日韩精品一区二区在线视频| 另类欧美日韩国产在线| 9.1成人看片免费版| 亚洲大片免费看| 国产激情久久久久久熟女老人av| 综合久久五月天| 中文字幕av一区二区三区佐山爱| 国产在线欧美日韩| 午夜欧美精品| 无人码人妻一区二区三区免费| 国产日韩欧美高清在线| 久久久久亚洲av成人毛片韩| 亚洲国产成人一区| 秋霞在线视频| 99久久久精品免费观看国产| 一区二区电影| 亚洲国产午夜精品| 综合av第一页| 91高潮大合集爽到抽搐| 色悠悠久久久久| 国产一区影院| 亚洲三区在线观看| 美腿丝袜一区二区三区| 制服丨自拍丨欧美丨动漫丨| 91传媒视频在线播放| 黄上黄在线观看| 国产精品999| gogogo高清在线观看一区二区| 欧美国产日韩在线播放| 国产日韩欧美激情| 在线观看毛片网站| 久久天天躁狠狠躁老女人| 国产成人免费视频网站视频社区 | 丁香激情五月少妇| 91高清视频在线| 在线观看a视频| 成人美女免费网站视频| 亚洲色图网站| 91精品啪在线观看国产| 激情成人中文字幕| 国产一级片在线| 成人欧美在线观看| 在线欧美视频| 亚洲久久久久久久| 欧美日韩卡一卡二| 午夜羞羞小视频在线观看| 国产富婆一区二区三区| 亚洲综合三区| 久久久免费看片| 日韩欧美中文字幕公布| 成入视频在线观看| 任我爽在线视频精品一| 国模大尺度一区二区三区| 久久久久亚洲AV| 国产亚洲精品激情久久| 国产精品99久久免费| 免费看毛片的网址| 日本一二三四高清不卡| 国产精品一区二区三区在线免费观看 | 国产传媒国产传媒| 91精品国产入口| 僵尸再翻生在线观看| 无码免费一区二区三区免费播放 | 国产精品扒开腿做爽爽| 欧美精品视频www在线观看| av2020不卡| 五码日韩精品一区二区三区视频| 国产成a人亚洲精| 看黄色一级大片| 久久99国产综合精品女同| 一区二区小说| 亚洲综合中文网| 欧美无砖专区一中文字| 国产后进白嫩翘臀在线观看视频| 视频一区二区三区在线观看| 国产激情视频一区二区三区欧美| 国产精品免费精品一区|