• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    WPF技術(shù)在蒙塞爾色相仿真測試中的應(yīng)用

    2016-02-23 07:53:03李曉京胡文東張利利惠鐸鐸
    關(guān)鍵詞:排序動畫界面

    李曉京,馬 進(jìn),胡文東,張利利,惠鐸鐸

    (第四軍醫(yī)大學(xué) 航空航天醫(yī)學(xué)教育部重點實驗室,陜西 西安 710032)

    WPF技術(shù)在蒙塞爾色相仿真測試中的應(yīng)用

    李曉京,馬 進(jìn),胡文東,張利利,惠鐸鐸

    (第四軍醫(yī)大學(xué) 航空航天醫(yī)學(xué)教育部重點實驗室,陜西 西安 710032)

    蒙塞爾色相測試(Farnsworth-Munsell Hue Test)用于檢測色覺缺陷人員的色弱區(qū)域,該測試的計算機(jī)仿真應(yīng)用在一些方面存在不足。文中在對蒙塞爾測試需求分析的基礎(chǔ)上,提出了基于.Net WPF技術(shù)的色相子操作仿真軟件功能設(shè)計方案,重點闡述了色相子控件類、控件拖放行為類、基于屬性觸發(fā)器的層次效果、泛型容器排序算法以及由故事板控制的色相子移位動畫設(shè)計思路。最終實現(xiàn)的色相子操作仿真界面具有分辨率自適應(yīng)、色相子操作仿真特效、色相子移位多重業(yè)務(wù)邏輯等特點,能夠充分滿足目標(biāo)應(yīng)用需求。

    WPF;Farnsworth-Munsell色相測試;自定義控件;行為類;屬性觸發(fā)器;泛型;故事板

    0 引 言

    WPF(Windows Presentation Foundation)是一個用于Windows的針對.NET設(shè)計的圖形顯示系統(tǒng),基于WPF開發(fā)的應(yīng)用程序界面底層都使用DirectX技術(shù),從而使得再普通不過的應(yīng)用程序也能使用諸如半透明、抗鋸齒等豐富的效果,并由DirectX將圖形渲染任務(wù)盡可能多地交給顯卡GPU處理,從而大大提高了硬件加速性能。其“界面UI設(shè)計”與“后臺編程”相分離的設(shè)計思想,使得界面元素外觀能夠以類似圖形編輯的方式輕松實現(xiàn),使得編程人員得以專注于代碼和業(yè)務(wù)邏輯分析,二相結(jié)合創(chuàng)造出優(yōu)秀用戶體驗的交互設(shè)計。另外,WPF可以實現(xiàn)資源構(gòu)件化開發(fā),資源的設(shè)計與開發(fā)具有很高的可重用性[1-9]。

    蒙塞爾色相測試(Farnsworth-Munsell Hue Test)用于檢測色覺缺陷人員的色弱區(qū)域[10]。目前可以找到一些Win32仿真測試軟件[11-13],在實用時發(fā)現(xiàn)存在一些不足:

    (1)選中的色相子缺乏相對其他色相子的空間層次效果;

    (2)拖拽釋放色相子對象后,色相子隊列的重排是一個跳變過程,色相子對象位移沒有過渡,易使受測者產(chǎn)生困惑和懷疑;

    (3)軟件界面大小無法調(diào)節(jié),在高分辨率顯示器上不能全屏?xí)@得交互界面過小。

    1 蒙塞爾色相子仿真軟件需求分析

    從測試實物外觀及相應(yīng)仿真軟件的不足之處可見,該仿真應(yīng)用存在如下關(guān)鍵需求:

    色相子仿真控件:由于實物色相子具有相同的外觀,僅色相不同且數(shù)量較多,因此合理的作法是將其設(shè)計為可重用控件,提供顏色設(shè)置屬性以便編程。

    色相子拖拽跟隨及層次特效:采用鼠標(biāo)操作模擬手工挪動色相子的位置變化,同時添加陰影效果,模擬控件的懸空狀態(tài)。

    色相子釋放后的排序業(yè)務(wù)邏輯:在色相子拖拽釋放后,需要根據(jù)其新的位置信息來判斷它應(yīng)該歸置于什么標(biāo)準(zhǔn)位置,從而引起整個色相子隊列的重排。

    色相子歸位動畫:用戶在釋放色相子控件后,如果參與排序業(yè)務(wù)的色相子控件都直接按照排序結(jié)果直接出現(xiàn)在其標(biāo)準(zhǔn)位置上,無疑是一種位置和色彩的突變,在視覺上會給用戶帶來不適以及對排序結(jié)果的懷疑與錯愕。因此,在完成排序業(yè)務(wù)邏輯運算后,讓色相子控件以過渡動畫的形式運動到它們的標(biāo)準(zhǔn)位置上,一方面與現(xiàn)實情況更為接近,另一方面可以讓用戶直觀地觀察到排序動態(tài)過程,從而增強其操作信心。

    分辨率無關(guān)的自動縮放效果:由于用戶顯示器尺寸和分辨率設(shè)置有種種可能,目標(biāo)應(yīng)用應(yīng)能隨著用戶控制交互界面的放大、縮小而自適應(yīng)地調(diào)整界面控件元素的大小,從而滿足不同用戶的喜好。

    從前述可知,WPF技術(shù)可以全方位滿足目標(biāo)應(yīng)用需求,特別是在用戶界面的美觀優(yōu)化與交互人性化設(shè)計方面,具有顯著的優(yōu)勢。

    2 色相子控件設(shè)計

    在WPF豐富的繪圖模型以及聲明式用戶界面的支持下,與專業(yè)設(shè)計工具Expression Blend相配合,圖形自定義控件的開發(fā)變得簡單而直觀。在Expression Blend中導(dǎo)入豐富的圖形構(gòu)建更加漂亮的控件,與在Photoshop中進(jìn)行圖形處理同樣容易[14]。簡便起見,下面以一個簡單明了的自定義控件加以演示和說明。

    自定義控件的可視化樹及外觀如圖1所示。

    由可視化樹可見,派生于UserControl的色相子控件由簡單的四個元素構(gòu)成。其中,第一個path元素是一個無色圓形,將其填充畫刷命名為CColor;第二個path則仿真色相子的環(huán)狀邊框覆蓋在上方。這兩個path元素嵌套在Canvas面板中置于Viewbox元素中,通過將Viewbox元素的Stretch屬性設(shè)置為"Uniform"實現(xiàn)控件在應(yīng)用時的一致性縮放。

    圖1 色相子控件可視化外觀

    后臺代碼工作主要是為控件創(chuàng)建三個依賴項屬性:ToTop、ToLeft、IsPressed。前兩個屬性用于控件實例的拖放歸位動畫,后者用于控件實例的拖放狀態(tài)層次效果屬性觸發(fā)器。將前述CColor畫刷的Color屬性封裝為控件的CenterColor屬性公開,通過該屬性可直接設(shè)定色相子控件實例的中心顏色。

    主要代碼如下:

    public partial class UserControl :UserControl

    {

    public Color CenterColor //該屬性用于設(shè)置色相子的顏色

    {

    set{CColor.Color=value;}

    get{return (Color)CColor.Color;}

    }

    // ToLeftProperty依賴項屬性用于控件拖放歸位動畫

    public static readonly DependencyProperty ToLeftProperty=

    DependencyProperty.Register("ToLeft",

    typeof(double),

    typeof(UserControl1),

    new FrameworkPropertyMetadata(0.0, null));

    public double ToLeft

    {

    set{SetValue(ToLeftProperty, value);}

    get{return (double)GetValue(ToLeftProperty);}

    }

    // ToTopProperty依賴項屬性與ToLeftProperty類似,定義從略

    //IsPressedProperty依賴項屬性用于觸發(fā)控件拖放層次效果,bool型,定義從略

    ……

    public UserControl1()

    {

    InitializeComponent();

    }

    }

    需要強調(diào)的是,依賴項屬性的性質(zhì)決定了它支持動態(tài)綁定,因此尤其適用于動畫、界面元素動態(tài)更新等需求,從而極大地簡化了編程復(fù)雜度,但相應(yīng)地也會為其強大動態(tài)功能付出系統(tǒng)資源代價。因此,在普通屬性和依賴性屬性的選擇方面要因需制宜。色相子控件中,CenterColor屬性就被聲明為普通屬性,這是由于色相子的中心顏色在程序生命周期中不會有動態(tài)的變化,因此普通屬性就可以滿足需要。此外,并未為CenterColor屬性創(chuàng)建相應(yīng)的私有數(shù)據(jù),而是通過訪問函數(shù)直接對其他元素屬性進(jìn)行操作,這種方式巧妙地達(dá)到了數(shù)據(jù)封裝和降低系統(tǒng)資源占用的目的,是.Net程序設(shè)計中一種非常實用的技巧。

    3 色相子交互界面設(shè)計

    仿真色相子界面用戶交互流程見圖2。

    圖2 仿真色相子控件用戶交互流程

    可見,由色相子控件事件驅(qū)動的拖放行為類、層次特效、控件排序業(yè)務(wù)邏輯、色相子歸位動畫等功能模塊相互作用,構(gòu)成了色相子仿真界面的人機(jī)交互邏輯。

    3.1 色相子拖放行為類

    WPF行為特征旨在代碼重用,封裝好的行為類可以為用戶界面上具有相同操作響應(yīng)的元素提供統(tǒng)一的操作支持。設(shè)計拖放行為類可以滿足色相子的拖放操作仿真,并降低代碼工作量。

    DragInCanvasBehavior由泛型類Behavior派生,其中定義按鍵、松鍵等事件響應(yīng)函數(shù)。重載基類的OnAttached(為元素聲明添加行為特征時調(diào)用,通常在前臺Xaml文件聲明中為控件啟用行為,即附著)、OnDetaching函數(shù)(元素銷毀時被調(diào)用,即解除附著),在這兩個函數(shù)中為被附著元素的相應(yīng)事件委托添加(或刪除)相應(yīng)的行為響應(yīng)函數(shù)。

    一個完整色相子的拖放行為仿真由鼠標(biāo)左鍵按下、鼠標(biāo)移動、鼠標(biāo)左鍵松開這一系列鼠標(biāo)事件構(gòu)成,因此,目標(biāo)行為類定義了對這三個事件的響應(yīng)函數(shù)。此外,由于拖放操作完成后有后續(xù)的排序歸位動畫,且在動畫執(zhí)行期間不允許執(zhí)行下一次操作任務(wù),因此,還需要為行為類添加兩個委托事件,PreDrag用于檢測是否處于動畫狀態(tài),DragEnd用于通知主程序拖放完成可以開始排序歸位動畫。該類的主要代碼如下:

    public class DragInCanvasBehavior:Behavior

    {

    private Canvas canvas; //用于保存控件的父容器面板

    private bool isDragging=false;//用于鼠標(biāo)移動時判斷是否處于拖放狀態(tài)

    private Point mouseOffset;//鼠標(biāo)位置偏移量

    //下兩行定義拖放結(jié)束事件委托

    public delegate void DragEndHandler(Object sender);

    public event DragEndHandler DragEnd;

    //下兩行定義拖放預(yù)檢事件委托

    public delegate bool PreDragHandler(Object sender);

    public event PreDragHandler PreDrag;

    protected override void OnAttached()

    {//重載附著函數(shù),將相關(guān)響應(yīng)函數(shù)添加到控件委托

    base.OnAttached();

    //MouseLeftButtonDown委托關(guān)聯(lián),MouseMove、MouseLeftButtonUp相類從略

    this.AssociatedObject.MouseLeftButtonDown+=AssociatedObject_MouseLeftButtonDown;

    ……

    }

    protected override void OnDetaching()

    { //重載解除附著函數(shù),從事件委托列表中刪除相關(guān)函數(shù)

    base.OnDetaching();

    //MouseLeftButtonDown解除委托關(guān)聯(lián),MouseMove、Mouse-LeftButtonUp相類從略

    this.AssociatedObject.MouseLeftButtonDown-=AssociatedObject_MouseLeftButtonDown;

    ……

    }

    private void AssociatedObject_MouseLeftButtonDown(Object sender,MouseButtonEventArgs e) //控件鼠標(biāo)左擊事件響應(yīng)函數(shù)

    {

    if(null!=PreDrag) if (!PreDrag(AssociatedObject)) return; //若不可進(jìn)入拖放狀態(tài),返回

    if(canvas==null)

    canvas=(Canvas)VisualTreeHelper.GetParent(this.AssociatedObject); //獲取控件父面板

    isDragging=true; //進(jìn)入拖放狀態(tài)標(biāo)志置位

    //獲取點擊點相對控件的坐標(biāo)(元素左上為0,0)

    mouseOffset=e.GetPosition(AssociatedObject);

    //捕獲鼠標(biāo),持續(xù)接收mousemove事件,即使其離開控件

    AssociatedObject.CaptureMouse();

    }

    private void AssociatedObject_MouseMove(Object sender, MouseEventArgs e)

    {//控件鼠標(biāo)移動事件響應(yīng)函數(shù)

    if(isDragging)//拖放狀態(tài)下,控件進(jìn)入鼠標(biāo)跟隨效果

    {//計算控件的新位置并設(shè)置其位置附加屬性

    Point point=e.GetPosition(canvas);

    Point pTemp=new Point(point.X-mouseOffset.X,point.Y-mouseOffset.Y);

    ……

    //控件移動(應(yīng)限制控件位置不得超出父面板邊界,代碼從略)

    AssociatedObject.SetValue(Canvas.TopProperty,pTemp.Y);

    AssociatedObject.SetValue(Canvas.LeftProperty,pTemp.X);

    }

    }

    private void AssociatedObject_MouseLeftButtonUp(Object sender,MouseButtonEventArgs e)

    {//控件左鍵松開響應(yīng)函數(shù)

    if(isDragging)

    {

    AssociatedObject.ReleaseMouseCapture();//解除捕獲鼠標(biāo)

    isDragging=false; //拖放狀態(tài)標(biāo)志清除

    //調(diào)用拖放結(jié)束委托函數(shù),通知主線程執(zhí)行排序運算和歸位動畫

    if(null!=DragEnd) DragEnd(AssociatedObject);

    }

    }

    }

    3.2 色相子控件應(yīng)用與層次特效

    在Xmal聲明文件中,采用常規(guī)的程序集引用和控件聲明即可實現(xiàn)色相子控件的應(yīng)用,以兩個Canvas面板各含5個色相子控件為例,界面元素及可視化樹見圖3。

    注:UserControl2是用于表示色相子標(biāo)準(zhǔn)位置的圖形控件,可忽略。

    色相子及行為聲明示例代碼如下所示:

    CenterColor="#FF873787" Height="50" Width="50" Panel.ZIndex="1">

    注意在以上聲明中,已將后臺定義的PreDrag、DragFinished函數(shù)關(guān)聯(lián)到附著行為類相應(yīng)委托事件上。

    拖放色相子時的層次特效首先是提升色相子在面板中的疊放層次,使受拖放控件呈現(xiàn)于其他控件之上,這將由后臺代碼來完成。其次,當(dāng)進(jìn)入拖動狀態(tài)時,可創(chuàng)建陰影效果,形成該色相子懸浮于空中的視覺效果。特效在Xaml文件的窗體資源中聲明,由前述色相子控件的自定義的IsPressed屬性觸發(fā),Xaml聲明如下:

    還可以通過故事板為陰影特效創(chuàng)建漸入漸出動畫以實現(xiàn)更為逼真的操作效果,這里就不作介紹了。

    3.3 色相子排序業(yè)務(wù)邏輯與歸位動畫

    色相子拖放與歸位動畫的中間環(huán)節(jié)是根據(jù)其被釋放時的位置計算整個色相子隊列成員的新位置。為了充分滿足用戶需求,設(shè)計插入和交換兩種業(yè)務(wù)邏輯供用戶選擇,插入/交換的目標(biāo)位置可就近或空位側(cè)優(yōu)先,如圖4所示。

    圖4 色相子排序業(yè)務(wù)邏輯示例

    這里以相對復(fù)雜的插入邏輯加以說明。

    初始化時,將所有色相子控件實例保存在列表泛型容器中,在拖放行為結(jié)束時,根據(jù)被拖放的色相子位置,調(diào)整列表中的控件排序,按排好的順序?qū)?biāo)準(zhǔn)位置賦給各色相子的ToTop、ToLeft依賴項屬性,并進(jìn)入下一步的歸位動畫。

    歸位動畫由動態(tài)創(chuàng)建的Storyboard實例控制,動畫開始時將指示動畫狀態(tài)標(biāo)志量置位,提交給拖放行為類的PreDrag委托函數(shù)將檢測該標(biāo)志以確定能否進(jìn)入后續(xù)的拖放操作狀態(tài)。

    核心代碼如下:

    public partial class Window2:Window

    {

    //多組色相子放在不同的Canvas面板中,對每個面板同時只允許執(zhí)行一個歸位動畫,因此定義面板與故事板的配對查詢字典

    private Dictionary storyboards=new Dictionary();

    //每個面板中所包含的色相子控件組保存在不同的泛型列表容器中,因此定義面板與列表容器的配對查詢字典

    private Dictionary> dicCanPairedUCList=new Dictionary>();

    //示例用兩組面板和色相子控件組,因此定義兩組保存色相子控件組的列表容器

    List lstCtr=new List();

    List lstCtr2=new List();

    //由于色相子Top都一樣,只須保存各控件Left屬性值;兩組控件共享一組Left坐標(biāo)數(shù)組

    List lstXPos=new List();

    public bool bIsAnimming=false; //是否處于動畫狀態(tài)標(biāo)志位

    public Window2()

    {//構(gòu)造函數(shù),完成初始化工作

    int i;

    InitializeComponent();

    //將Xaml文件聲明的兩個面板與列表容器配對加入字典

    dicCanPairedUCList.Add(can1,lstCtr1);

    dicCanPairedUCList.Add(can2,lstCtr2);

    for(i=0;i< can1.Children.Count;i++)

    {//逐一將面板1中色相子實例入列,并保存標(biāo)準(zhǔn)位置數(shù)據(jù)

    if (can1.Children[i].GetType()!=typeof(UserControl1)) continue;

    lstCtr.Add((UserControl1)can1.Children[i]);

    ((UserControl1)can1.Children[i]).ToTop=//ToTop屬性全程不變

    (double)((UserControl1)can1.Children[i]).GetValue(Canvas.TopProperty);

    lstXPos.Add((double)((UserControl1)can1.Children[i]).GetValue(Canvas.LeftProperty));

    }

    //逐一將面板2中色相子入列,代碼從略

    for(i=0;i

    }

    // DragFinished在Xaml控件聲明中關(guān)聯(lián)至控件拖放行為的DragEnd事件

    public void DragFinished(Object obj)

    {

    int i,j=0;

    double dtemp,mindiff=10000;

    //三行代碼根據(jù)回調(diào)參數(shù)確定色相子控件、父面板及其配對列表容器

    UserControl1 ctr=(UserControl1)obj;

    Canvas can=(Canvas)VisualTreeHelper.GetParent(ctr);

    List lstCtrTemp=dicCanPairedUCList[can];

    if(bIsNearIns){ //若是就近插入邏輯

    for(i=0;i

    {/*dtemp用于保存受拖動控件與組內(nèi)各控件的距離;

    距離最小的控件序號將保存在變量j中,代碼從略*/

    dtemp=Math.Abs(lstXPos.ElementAt(i)-(double)(ctr.GetValue(Canvas.LeftProperty)));

    ……

    }

    //將被拖放的控件插入到新的位置

    lstCtrTemp.Remove(ctr);

    if(j==lstCtrTemp.Count)lstCtrTemp.Add(ctr);

    else lstCtrTemp.Insert(j,ctr);

    }

    else{//空位側(cè)優(yōu)先插入邏輯直接采用Lambda表達(dá)式完成冒泡排序

    lstCtrTemp.Sort((ctr1,ctr2)=>{

    return(double)ctr1.GetValue(Canvas.LeftProperty) <

    (double)ctr2.GetValue(Canvas.LeftProperty) ? -1:1;});

    }

    //交換業(yè)務(wù)邏輯從略

    ……

    //創(chuàng)建故事板實例sb并行管理一組色相子的歸位動畫

    Storyboard sb=new Storyboard();

    for(i=0;i

    { //將標(biāo)準(zhǔn)X坐標(biāo)賦給各色相子控件的ToLeft

    lstCtrTemp.ElementAt(i).ToLeft=lstXPos.ElementAt(i);

    //橫坐標(biāo)歸位動畫

    DoubleAnimationctrAL=newDoubleAnimation();

    ctrAL.To=lstCtrTemp.ElementAt(i).ToLeft;

    ctrAL.Duration=TimeSpan.FromSeconds(0.1);

    Storyboard.SetTarget(ctrAL,lstCtrTemp.ElementAt(i));

    Storyboard.SetTargetProperty(ctrAL,newPropertyPath("(Canvas.Left)"));

    sb.Children.Add(ctrAL);

    //縱坐標(biāo)歸位動畫與橫坐標(biāo)相類,代碼從略

    ……

    }

    //動畫時長設(shè)置為0.1秒,以免拖延操作時間

    sb.Duration=TimeSpan.FromSeconds(0.1);

    //動畫結(jié)束清理工作函數(shù)提交給故事板結(jié)束事件委托

    sb.Completed+=storyboard_Completed;

    sb.Begin();

    storyboards.Add(can,sb);//將面板與動畫配對加入字典

    }

    //動畫結(jié)束時將被執(zhí)行的清理函數(shù)

    privatevoidstoryboard_Completed(objectsender,EventArgse)

    {

    //由結(jié)束的故事板時間線對象查找受控色相子的父面板及其配對列表容器、配對故事板實例

    ClockGroupclockGroup=(ClockGroup)sender;

    UserControl1ctrTemp=(UserControl1)Storyboard.GetTarget(

    (AnimationTimeline)clockGroup.Children[0].Timeline);

    Canvascan=(Canvas)VisualTreeHelper.GetParent(ctrTemp);

    Listlstctr=dicCanPairedUCList[can];

    Storyboardstoryboard=storyboards[can];

    //停止、清除動畫,并將面板、動畫配對從字典中刪除

    storyboard.Stop();

    storyboard.Children.Clear();

    storyboards.Remove(can);

    foreach(UserControl1ctrinlstctr)

    { //逐一將同組各色相子的目標(biāo)位置賦予自身的實際位置屬性

    ctr.SetValue(Canvas.LeftProperty,ctr.ToLeft);

    ctr.SetValue(Canvas.TopProperty,ctr.ToTop);

    ctr.IsPressed=false; //清除控件拖放狀態(tài)標(biāo)志,去除層次效果

    Canvas.SetZIndex(ctr,1); //恢復(fù)控件初始層次

    }

    }

    //PreDrag函數(shù)在Xmal聲明中關(guān)聯(lián)到控件拖放行為的PreDrag事件

    privateboolPreDrag(objectsender)

    {

    UserControl1ctr=(UserControl1)sender;

    //檢查色相子控件的父面板是否處于動畫狀態(tài)

    boolbTemp=storyboards.ContainsKey(((Canvas)ctr.Parent)) ?false:true;

    if(bTemp) {//不在動畫狀態(tài)即將進(jìn)入拖放操作

    Canvas.SetZIndex(ctr, 2);//提升控件疊放層次

    ctr.IsPressed=true;//設(shè)置拖放標(biāo)志,觸發(fā)層次特效

    }

    returnbTemp;

    }

    }

    為色相子控件定義的ToLeft、ToTop依賴項屬性作用在故事板中得到體現(xiàn)。如果不這樣設(shè)計,就需要在主窗體中為全部色相子定義相應(yīng)的依賴項屬性數(shù)組,那樣代碼邏輯顯然要混亂很多,并且當(dāng)界面色相子控件數(shù)量發(fā)生變化時,也會帶來代碼維護(hù)上的不便。

    本例中用到了Dictionary、List兩種泛型容器,帶來的好處有兩方面。首先,雖然ArrayList類可以實現(xiàn)與泛型類相似的功能,但泛型實例是強類型的,即在聲明時必須給定容器內(nèi)將要存儲的對象類型,從而省去了ArrayList類應(yīng)用時對未知數(shù)組元素的裝箱/拆箱操作,提高程序運行效率;其次,泛型類直接或間接提供了對數(shù)組元素的查詢、定位、插入、排序等豐富的成員函數(shù)或接口,在程序設(shè)計方面帶來的便利是顯而易見的。

    3.4 與分辨率無關(guān)的自適應(yīng)界面設(shè)計

    對于Win32應(yīng)用來說,控件隨著界面的大小而自動縮放是一項繁瑣的任務(wù)。但由于WPF強大的布局設(shè)計與圖形化界面功能,這幾乎不算一個問題。如圖3中的可視化樹所示,將面板包含在Viewbox中,并根據(jù)需要設(shè)置Viewbox的Stretch、StretchDirection屬性,就可以實現(xiàn)控件隨用戶界面大小而自適應(yīng)地動態(tài)調(diào)整自身大小,滿足用戶的視覺需求。如圖5所示,對比標(biāo)題欄大小可見兩個不同大小窗口中,控件完全隨著窗體的拉伸自適應(yīng)縮放并調(diào)整布局繪制,不需要任何后臺代碼。

    圖5 仿真色相子界面自適應(yīng)縮放及布局

    這種與界面大小無關(guān)的控件自適應(yīng)縮放與自動布局充分體現(xiàn)了WPF的強大,其將編程人員從繁瑣的界面布局邏輯中完全解放出來,從而可以更加專注于核心業(yè)務(wù)代碼設(shè)計,對于程序開發(fā)效率和用戶體驗的提升具有劃時代的意義。

    4 結(jié)束語

    根據(jù)Farnsworth-Munsell色相測試系統(tǒng)實物使用特點及原有軟件的不足之處,文中提出了基于WPF技術(shù)的色相子仿真交互界面設(shè)計方案。該方案充分利用到.Net的圖形界面優(yōu)勢,綜合運用依賴項屬性、觸發(fā)器、故事板、泛型等.Net和WPF的優(yōu)勢特性,具有界面外觀可拓展性強、更接近實際物理特性的層次效果和仿真排序過渡動畫、與分辨率無關(guān)的界面自適應(yīng)縮放與布局調(diào)整等特點,并對涉及的關(guān)鍵技術(shù)進(jìn)行了詳細(xì)介紹。在Win32應(yīng)用逐漸落伍,個性化、富媒體化跨平臺應(yīng)用日益崛起的大背景下,文中介紹的.Net框架下的WPF相關(guān)技術(shù),對于圖形化界面與人機(jī)交互類的應(yīng)用開發(fā)都有一定的借鑒意義。文中示例在Windows XP系統(tǒng)Visual Studio 2010 C#開發(fā)環(huán)境下編譯,Win XP、Win 8操作系統(tǒng)測試通過。

    [1] Troelsen A.C#與.Net 4高級程序設(shè)計[M].朱 曄,肖 逵,姚琪琳,等,譯.第5版.北京:人民郵電出版社,2011.

    [2] MacDonald M.WPF編程寶典—C#2010版[M].王德才,譯.北京:清華大學(xué)出版社,2011.

    [3] Petzold C.Windows Presentation Foundation程序設(shè)計指南[M].蔡學(xué)鏞,譯.北京:電子工業(yè)出版社,2008.

    [4] 王 鵬,崔 靜.新一代界面技術(shù)WPF的架構(gòu)及應(yīng)用[J].成都紡織高等專科學(xué)校學(xué)報,2011,28(1):18-20.

    [5] 張京明,曹國忠,張承業(yè),等.創(chuàng)新方法與交互設(shè)計結(jié)合的探討[J].價值工程,2012,31(10):10-11.

    [6] 李 穎.基于WPF的課堂教學(xué)管理系統(tǒng)研究與設(shè)計[J].中國教育技術(shù)裝備,2011(24):85-87.

    [7] 袁云云,周之昊.基于WPF的醫(yī)療輔助軟件設(shè)計與開發(fā)[J].數(shù)字技術(shù)與應(yīng)用,2012(2):132-132.

    [8] 李成剛,馮 靜,凌 玲.基于WPF的交互式繪圖系統(tǒng)的開發(fā)[J].微型機(jī)與應(yīng)用,2011,30(6):50-52.

    [9] Macdonald M.Pro WPF in C# 2008:Windows Presentation Foundation with .NET 3.5[M].New York:Apress,2008.

    [10] Farnsworth D.The Farnsworth-Munsell 100 hue and Dichotomous tests for color vision[J].Journal of the Optical Society of America B-optical Physics,1943,33:568-578.

    [11] Hidajat R R,Hidayat J R,McLay J L,et al.A fast system for reporting the Farnsworth-Munsell 100-hue colour vision test[J].Documenta Ophthalmologica,2004,109(2):109-114.

    [12] Ghose S,Parmar T,Dada T,et al.A new computer-based Farnsworth-Munsell 100-hue test for evaluation of color vision[J].International Ophthalmology,2014,34(4):747-751.

    [13] Melamud A,Simpson E,Traboulsi E I.Introducing a new computer-based test for the clinical evaluation of color discrimination[J].American Journal of Ophthalmology,2006,142(6):953-960.

    [14] 張洪定,孟冬梅.基于Expression Blend 4中文版 WPF和Silverlight項目設(shè)計基礎(chǔ)[M].北京:清華大學(xué)出版社,2011.

    Application of WPF in Farnsworth-Munsell Hue Simulation Testing System Development

    LI Xiao-jing,MA Jin,HU Wen-dong,ZHANG Li-li,HUI Duo-duo

    (Key Laboratory of Aerospace Medical of Ministry of Education,Fourth Military Medical University,Xi’an 710032,China)

    Farnsworth-Munsell Hue Test is applied to inspect the color weakness area of hypochromatopsia patients.But,for the computer simulation software of the test,there are some improvable aspects in the characteristics’ simulation.Based on the demand analysis of the test,a kind of software function and frame,utilizing .NET WPF,was developed for Hue-Token (HT) manipulating simulation.Primarily,the design of HT component,drag-drop behavior class,layer effect based on property trigger,sorting arithmetic of generic class and HT shifting animation under the control of storyboard were described in detail.Features of the final simulation interface such as resolution self-adaption,special effects of HT operation,multi-business logic of HT shift,could meet the need of demand of object application sufficiently.

    WPF (Windows Presentation Foundation);Farnsworth-Munsell Hue Simulation Testing;user control;behavior class;property trigger;generic type;storyboard

    2015-04-08

    2015-07-13

    時間:2016-01-04

    國家自然科學(xué)基金青年項目(81202178/H2602);全軍醫(yī)藥衛(wèi)生重大項目(AWS12J003)

    李曉京(1975-),男,高級實驗師,碩士,研究方向為計算機(jī)應(yīng)用、生物醫(yī)學(xué)工程;馬 進(jìn),副研究員,博士,研究方向為心理學(xué);胡文東,研究員,碩士,研究方向為心理學(xué)、醫(yī)學(xué)工程。

    http://www.cnki.net/kcms/detail/61.1450.TP.20160104.1510.060.html

    TP311

    A

    1673-629X(2016)02-0154-07

    10.3969/j.issn.1673-629X.2016.02.035

    猜你喜歡
    排序動畫界面
    排序不等式
    做個動畫給你看
    動畫發(fā)展史
    國企黨委前置研究的“四個界面”
    恐怖排序
    我的動畫夢
    文苑(2019年22期)2019-12-07 05:28:56
    節(jié)日排序
    刻舟求劍
    兒童繪本(2018年5期)2018-04-12 16:45:32
    基于FANUC PICTURE的虛擬軸坐標(biāo)顯示界面開發(fā)方法研究
    人機(jī)交互界面發(fā)展趨勢研究
    男人舔女人的私密视频| 久久天堂一区二区三区四区| 激情视频va一区二区三区| 啦啦啦在线免费观看视频4| 久久性视频一级片| 99国产精品免费福利视频| 精品人妻1区二区| 黄色视频在线播放观看不卡| 黄色a级毛片大全视频| 国产精品免费大片| 欧美黄色淫秽网站| 亚洲精华国产精华精| 精品国产乱码久久久久久男人| 久久精品熟女亚洲av麻豆精品| 三上悠亚av全集在线观看| 我要看黄色一级片免费的| 国产av国产精品国产| 午夜成年电影在线免费观看| 如日韩欧美国产精品一区二区三区| 亚洲一码二码三码区别大吗| 国产精品.久久久| 久久精品国产亚洲av香蕉五月 | 视频在线观看一区二区三区| 国产精品.久久久| 久久久水蜜桃国产精品网| 国产淫语在线视频| 日韩欧美国产一区二区入口| 亚洲精品成人av观看孕妇| 热99国产精品久久久久久7| 人妻人人澡人人爽人人| 精品国内亚洲2022精品成人 | 在线观看www视频免费| 一边摸一边抽搐一进一出视频| 国产1区2区3区精品| 中文字幕最新亚洲高清| 一级毛片电影观看| 熟女少妇亚洲综合色aaa.| 国产麻豆69| 精品熟女少妇八av免费久了| 日本av免费视频播放| 一级,二级,三级黄色视频| 久久99一区二区三区| 永久免费av网站大全| 国产精品自产拍在线观看55亚洲 | 精品国产乱码久久久久久男人| 19禁男女啪啪无遮挡网站| 亚洲成av片中文字幕在线观看| 久久精品国产亚洲av香蕉五月 | 精品国产乱子伦一区二区三区 | 精品乱码久久久久久99久播| 国产淫语在线视频| 国产亚洲精品第一综合不卡| 国产一级毛片在线| 婷婷色av中文字幕| 亚洲精品国产区一区二| 国产亚洲一区二区精品| 97精品久久久久久久久久精品| 国产老妇伦熟女老妇高清| 久久久久久久精品精品| 一区二区三区四区激情视频| 91老司机精品| 久久人人爽av亚洲精品天堂| av一本久久久久| 欧美国产精品一级二级三级| 男女高潮啪啪啪动态图| 男女高潮啪啪啪动态图| 国产精品一区二区在线不卡| 国产精品一区二区在线不卡| 中国国产av一级| 中文字幕最新亚洲高清| 两个人看的免费小视频| 国产高清国产精品国产三级| 久久久久精品国产欧美久久久 | 另类精品久久| 建设人人有责人人尽责人人享有的| 黄色视频在线播放观看不卡| 亚洲精品在线美女| av线在线观看网站| 国产亚洲精品第一综合不卡| 丁香六月天网| 日韩 欧美 亚洲 中文字幕| 他把我摸到了高潮在线观看 | 久久国产精品男人的天堂亚洲| 久久狼人影院| 久久毛片免费看一区二区三区| 久久亚洲国产成人精品v| 亚洲,欧美精品.| 一本一本久久a久久精品综合妖精| 亚洲国产日韩一区二区| 黄色视频不卡| 亚洲国产日韩一区二区| 免费高清在线观看日韩| 免费观看av网站的网址| 少妇裸体淫交视频免费看高清 | 黄色毛片三级朝国网站| 中文字幕高清在线视频| 国产成+人综合+亚洲专区| 色婷婷久久久亚洲欧美| 韩国高清视频一区二区三区| 飞空精品影院首页| 男人舔女人的私密视频| 天天躁狠狠躁夜夜躁狠狠躁| 深夜精品福利| 亚洲,欧美精品.| 国产精品.久久久| 成年美女黄网站色视频大全免费| 纵有疾风起免费观看全集完整版| av超薄肉色丝袜交足视频| 最近最新免费中文字幕在线| 亚洲av国产av综合av卡| 一区在线观看完整版| 女警被强在线播放| 久久久精品国产亚洲av高清涩受| 欧美黄色淫秽网站| 亚洲欧洲日产国产| 两个人看的免费小视频| 精品国产国语对白av| 在线 av 中文字幕| 精品福利观看| 亚洲欧美日韩另类电影网站| 悠悠久久av| 亚洲av成人不卡在线观看播放网 | 黄色片一级片一级黄色片| 99热网站在线观看| 午夜久久久在线观看| 亚洲av电影在线观看一区二区三区| 国产片内射在线| 一级毛片精品| 夜夜骑夜夜射夜夜干| 女性被躁到高潮视频| 国产亚洲av高清不卡| 欧美+亚洲+日韩+国产| 一区二区日韩欧美中文字幕| 亚洲成av片中文字幕在线观看| 国产在线免费精品| 香蕉丝袜av| 久久九九热精品免费| 国产区一区二久久| 啦啦啦 在线观看视频| 亚洲国产日韩一区二区| 精品国产乱码久久久久久男人| 99国产精品一区二区蜜桃av | 欧美性长视频在线观看| 97精品久久久久久久久久精品| 国产一级毛片在线| tube8黄色片| 久久久欧美国产精品| www.av在线官网国产| 日本a在线网址| 视频在线观看一区二区三区| 黄片大片在线免费观看| 国产一区二区三区av在线| 欧美黄色淫秽网站| 伦理电影免费视频| 脱女人内裤的视频| 亚洲va日本ⅴa欧美va伊人久久 | 天天影视国产精品| 蜜桃在线观看..| 国产男女超爽视频在线观看| 日韩人妻精品一区2区三区| 久久精品久久久久久噜噜老黄| 亚洲avbb在线观看| 日日爽夜夜爽网站| 两性午夜刺激爽爽歪歪视频在线观看 | 一边摸一边做爽爽视频免费| 国产一级毛片在线| 成年动漫av网址| 亚洲精品美女久久av网站| 99精国产麻豆久久婷婷| 一级片免费观看大全| 天天操日日干夜夜撸| 久久女婷五月综合色啪小说| 人人妻人人澡人人爽人人夜夜| 高清视频免费观看一区二区| 丝袜美腿诱惑在线| 视频在线观看一区二区三区| 日韩制服骚丝袜av| 法律面前人人平等表现在哪些方面 | 亚洲午夜精品一区,二区,三区| 欧美 日韩 精品 国产| 亚洲国产毛片av蜜桃av| 免费在线观看完整版高清| 国产在线免费精品| 久久天躁狠狠躁夜夜2o2o| 热99re8久久精品国产| 法律面前人人平等表现在哪些方面 | 久热爱精品视频在线9| 丝瓜视频免费看黄片| 在线观看免费视频网站a站| 一二三四社区在线视频社区8| 国产一区二区激情短视频 | 人妻人人澡人人爽人人| 精品国产超薄肉色丝袜足j| 人人妻,人人澡人人爽秒播| 精品国产一区二区三区四区第35| 欧美精品高潮呻吟av久久| 老司机亚洲免费影院| 人人妻人人澡人人看| 少妇被粗大的猛进出69影院| 国产高清videossex| 俄罗斯特黄特色一大片| 亚洲久久久国产精品| 亚洲第一青青草原| 性色av乱码一区二区三区2| 日本一区二区免费在线视频| 欧美久久黑人一区二区| 亚洲自偷自拍图片 自拍| 久久久久久久国产电影| 亚洲,欧美精品.| 久久天躁狠狠躁夜夜2o2o| 久久久国产一区二区| 丰满少妇做爰视频| 三上悠亚av全集在线观看| 亚洲精品国产精品久久久不卡| 亚洲人成电影观看| 人妻久久中文字幕网| 黑人操中国人逼视频| 妹子高潮喷水视频| 一区二区日韩欧美中文字幕| 久久中文字幕一级| 美女主播在线视频| 久久人人爽av亚洲精品天堂| 老熟妇乱子伦视频在线观看 | 日韩三级视频一区二区三区| 中国美女看黄片| 成人国语在线视频| 大片免费播放器 马上看| 久久久久久人人人人人| 国产不卡av网站在线观看| 高清黄色对白视频在线免费看| 99香蕉大伊视频| 国产精品一区二区在线不卡| a级毛片黄视频| 国产一区有黄有色的免费视频| 五月开心婷婷网| 成人手机av| √禁漫天堂资源中文www| 9191精品国产免费久久| 别揉我奶头~嗯~啊~动态视频 | tube8黄色片| 亚洲久久久国产精品| 亚洲人成电影观看| av又黄又爽大尺度在线免费看| 精品国产国语对白av| 久久久久久人人人人人| 捣出白浆h1v1| 亚洲av国产av综合av卡| 老司机福利观看| 亚洲自偷自拍图片 自拍| 精品人妻一区二区三区麻豆| 日韩,欧美,国产一区二区三区| 久久精品成人免费网站| 一级片'在线观看视频| 老司机深夜福利视频在线观看 | 日本wwww免费看| 美女福利国产在线| 另类精品久久| 另类亚洲欧美激情| 满18在线观看网站| 狂野欧美激情性xxxx| 99九九在线精品视频| 乱人伦中国视频| 91精品三级在线观看| av超薄肉色丝袜交足视频| 爱豆传媒免费全集在线观看| 热re99久久国产66热| 丝袜在线中文字幕| 亚洲视频免费观看视频| 免费观看av网站的网址| 亚洲欧美成人综合另类久久久| 久久久久久久久免费视频了| 亚洲va日本ⅴa欧美va伊人久久 | 成人免费观看视频高清| 欧美成狂野欧美在线观看| 国产精品 欧美亚洲| 亚洲午夜精品一区,二区,三区| av视频免费观看在线观看| 男人操女人黄网站| 黑人操中国人逼视频| 国产精品久久久av美女十八| 国产精品一区二区在线观看99| 亚洲色图 男人天堂 中文字幕| 久久久久久久久免费视频了| 国产精品免费视频内射| 一区福利在线观看| 久久中文字幕一级| 日韩大片免费观看网站| 色播在线永久视频| 老熟妇仑乱视频hdxx| 深夜精品福利| 一级,二级,三级黄色视频| 一级片'在线观看视频| 一区二区三区乱码不卡18| 成年av动漫网址| 久久亚洲国产成人精品v| 日韩人妻精品一区2区三区| 亚洲综合色网址| 欧美人与性动交α欧美软件| 精品亚洲成a人片在线观看| 丝袜美腿诱惑在线| 国产欧美日韩一区二区精品| 两个人看的免费小视频| 亚洲欧美精品综合一区二区三区| 亚洲第一av免费看| 久久99一区二区三区| 国产亚洲欧美精品永久| 超碰成人久久| 午夜影院在线不卡| 99国产精品一区二区蜜桃av | 欧美日韩黄片免| 搡老岳熟女国产| 天天操日日干夜夜撸| 国产高清videossex| 男人爽女人下面视频在线观看| 国产又爽黄色视频| 日韩视频一区二区在线观看| e午夜精品久久久久久久| 欧美 亚洲 国产 日韩一| 一区福利在线观看| 亚洲av欧美aⅴ国产| 亚洲精品国产一区二区精华液| 99热全是精品| 久久女婷五月综合色啪小说| 欧美另类亚洲清纯唯美| 每晚都被弄得嗷嗷叫到高潮| 中文字幕人妻丝袜一区二区| 99精品久久久久人妻精品| 啦啦啦在线免费观看视频4| 午夜视频精品福利| 亚洲国产日韩一区二区| 国产欧美日韩一区二区精品| 久久 成人 亚洲| 女人高潮潮喷娇喘18禁视频| 天堂中文最新版在线下载| 法律面前人人平等表现在哪些方面 | 亚洲成人免费电影在线观看| 在线天堂中文资源库| 日韩制服骚丝袜av| 国产精品久久久久成人av| 一区福利在线观看| 大香蕉久久成人网| 黄色怎么调成土黄色| 女人被躁到高潮嗷嗷叫费观| 精品免费久久久久久久清纯 | 两个人免费观看高清视频| 电影成人av| 亚洲情色 制服丝袜| 午夜视频精品福利| 国产有黄有色有爽视频| 欧美另类亚洲清纯唯美| 麻豆乱淫一区二区| 性高湖久久久久久久久免费观看| 最新在线观看一区二区三区| 秋霞在线观看毛片| www.999成人在线观看| 国产欧美日韩一区二区精品| 亚洲av片天天在线观看| 国产精品久久久av美女十八| 日韩大码丰满熟妇| 真人做人爱边吃奶动态| 搡老岳熟女国产| 亚洲精品日韩在线中文字幕| 国产精品 欧美亚洲| 777久久人妻少妇嫩草av网站| videos熟女内射| 亚洲七黄色美女视频| 男女国产视频网站| 动漫黄色视频在线观看| 色94色欧美一区二区| 免费不卡黄色视频| 精品福利观看| 99精品欧美一区二区三区四区| 日本wwww免费看| 亚洲午夜精品一区,二区,三区| 久久天堂一区二区三区四区| 久久香蕉激情| 亚洲精品国产av成人精品| 少妇精品久久久久久久| 电影成人av| xxxhd国产人妻xxx| 涩涩av久久男人的天堂| 母亲3免费完整高清在线观看| 精品一区二区三区av网在线观看 | 天堂8中文在线网| 每晚都被弄得嗷嗷叫到高潮| 精品国产一区二区三区久久久樱花| 国产激情久久老熟女| 亚洲欧美激情在线| 亚洲精品粉嫩美女一区| 日韩制服骚丝袜av| 水蜜桃什么品种好| 国产精品一区二区在线观看99| 少妇的丰满在线观看| 免费在线观看视频国产中文字幕亚洲 | 欧美变态另类bdsm刘玥| 大香蕉久久成人网| 午夜日韩欧美国产| tube8黄色片| 亚洲av国产av综合av卡| 精品卡一卡二卡四卡免费| 亚洲国产毛片av蜜桃av| 中亚洲国语对白在线视频| 亚洲av电影在线观看一区二区三区| 亚洲精品国产av蜜桃| 国产在线免费精品| 一本—道久久a久久精品蜜桃钙片| 手机成人av网站| 久久久水蜜桃国产精品网| 成人国产av品久久久| 熟女少妇亚洲综合色aaa.| 美女视频免费永久观看网站| 国产亚洲精品久久久久5区| 亚洲国产精品一区三区| 成年av动漫网址| 久久人妻福利社区极品人妻图片| 黑人猛操日本美女一级片| 天堂俺去俺来也www色官网| 天天添夜夜摸| 男女高潮啪啪啪动态图| 18禁观看日本| 满18在线观看网站| 脱女人内裤的视频| 免费黄频网站在线观看国产| 一级,二级,三级黄色视频| 久久 成人 亚洲| 欧美97在线视频| 1024视频免费在线观看| 窝窝影院91人妻| 欧美黑人精品巨大| 亚洲国产av新网站| 黑人巨大精品欧美一区二区mp4| 人人妻人人澡人人爽人人夜夜| 国产97色在线日韩免费| 国产在视频线精品| 亚洲男人天堂网一区| 日本撒尿小便嘘嘘汇集6| 亚洲中文字幕日韩| 国产一区二区三区在线臀色熟女 | 精品人妻熟女毛片av久久网站| 国产精品1区2区在线观看. | 国产真人三级小视频在线观看| 男女下面插进去视频免费观看| 天堂8中文在线网| 狠狠精品人妻久久久久久综合| 久久久久久久久久久久大奶| 丁香六月欧美| 国产精品国产av在线观看| 操出白浆在线播放| 女性被躁到高潮视频| www.av在线官网国产| 高清在线国产一区| 亚洲欧美日韩高清在线视频 | 免费在线观看影片大全网站| 亚洲欧美一区二区三区黑人| 淫妇啪啪啪对白视频 | 欧美日韩中文字幕国产精品一区二区三区 | 国产99久久九九免费精品| 久久精品国产亚洲av香蕉五月 | 久久亚洲精品不卡| 人人妻人人澡人人看| av免费在线观看网站| 黑丝袜美女国产一区| 丰满迷人的少妇在线观看| tube8黄色片| 午夜精品久久久久久毛片777| 欧美日韩精品网址| 国产成人精品在线电影| 国产片内射在线| 欧美av亚洲av综合av国产av| 中文字幕人妻熟女乱码| 亚洲国产精品成人久久小说| 黑丝袜美女国产一区| 看免费av毛片| 国产av一区二区精品久久| 少妇的丰满在线观看| 久久精品国产a三级三级三级| 久久精品成人免费网站| 又黄又粗又硬又大视频| 国产欧美日韩精品亚洲av| 国产亚洲午夜精品一区二区久久| 亚洲av成人不卡在线观看播放网 | 岛国在线观看网站| 国产精品九九99| 久久久久久久久免费视频了| h视频一区二区三区| 久久久精品国产亚洲av高清涩受| 日韩一区二区三区影片| 亚洲黑人精品在线| 一本久久精品| 久久av网站| 欧美另类一区| 免费少妇av软件| 日本撒尿小便嘘嘘汇集6| 国产无遮挡羞羞视频在线观看| 亚洲国产欧美一区二区综合| 一本久久精品| 久久人妻福利社区极品人妻图片| 日日爽夜夜爽网站| 在线观看人妻少妇| 国产欧美日韩综合在线一区二区| 日韩一区二区三区影片| 欧美xxⅹ黑人| 大片免费播放器 马上看| 亚洲精品美女久久久久99蜜臀| 亚洲国产中文字幕在线视频| 天天躁狠狠躁夜夜躁狠狠躁| 亚洲国产av新网站| 老汉色∧v一级毛片| 桃红色精品国产亚洲av| 曰老女人黄片| 欧美日韩亚洲综合一区二区三区_| 窝窝影院91人妻| 亚洲第一青青草原| 久久久精品94久久精品| 国产精品麻豆人妻色哟哟久久| 国产精品秋霞免费鲁丝片| 老熟妇仑乱视频hdxx| 亚洲天堂av无毛| 一区二区三区激情视频| 亚洲激情五月婷婷啪啪| 亚洲午夜精品一区,二区,三区| 精品免费久久久久久久清纯 | 中文字幕另类日韩欧美亚洲嫩草| 99久久综合免费| 日本黄色日本黄色录像| 50天的宝宝边吃奶边哭怎么回事| 成年动漫av网址| 亚洲精品国产一区二区精华液| 天天影视国产精品| 久久久久视频综合| 在线观看一区二区三区激情| 性少妇av在线| 亚洲少妇的诱惑av| 日本撒尿小便嘘嘘汇集6| 国产精品影院久久| 精品久久久久久电影网| 丝瓜视频免费看黄片| 国产成人一区二区三区免费视频网站| 女人被躁到高潮嗷嗷叫费观| 成人黄色视频免费在线看| 啦啦啦啦在线视频资源| 中文欧美无线码| 动漫黄色视频在线观看| 国产色视频综合| 亚洲精品在线美女| 免费看十八禁软件| 秋霞在线观看毛片| 汤姆久久久久久久影院中文字幕| 国产精品免费视频内射| 男女边摸边吃奶| 丝袜脚勾引网站| 一级片免费观看大全| 亚洲专区国产一区二区| 麻豆av在线久日| 亚洲欧美日韩另类电影网站| 丝袜人妻中文字幕| 亚洲中文字幕日韩| 制服诱惑二区| 女人被躁到高潮嗷嗷叫费观| 久久精品久久久久久噜噜老黄| 嫩草影视91久久| 日本撒尿小便嘘嘘汇集6| 精品人妻一区二区三区麻豆| 日本撒尿小便嘘嘘汇集6| 极品少妇高潮喷水抽搐| 成人国语在线视频| 亚洲第一av免费看| 2018国产大陆天天弄谢| 日韩精品免费视频一区二区三区| 欧美国产精品一级二级三级| 在线永久观看黄色视频| 成人18禁高潮啪啪吃奶动态图| 美女高潮喷水抽搐中文字幕| 久久人人爽av亚洲精品天堂| 日本黄色日本黄色录像| av国产精品久久久久影院| av有码第一页| 一本久久精品| 亚洲av日韩在线播放| a级毛片黄视频| 母亲3免费完整高清在线观看| 久热爱精品视频在线9| 国产色视频综合| 国产欧美日韩一区二区三区在线| 三级毛片av免费| 搡老岳熟女国产| 一级毛片电影观看| 亚洲av美国av| 美女福利国产在线| 国产伦人伦偷精品视频| 五月天丁香电影| 亚洲国产欧美一区二区综合| 久久人人爽人人片av| 制服诱惑二区| 老熟女久久久| 日韩大片免费观看网站| 欧美97在线视频| 久久久精品94久久精品| 他把我摸到了高潮在线观看 | 久久久久久久久免费视频了| 精品人妻熟女毛片av久久网站| 国产99久久九九免费精品| 老司机影院毛片| 超碰成人久久| 又大又爽又粗| 免费在线观看影片大全网站| 亚洲国产av影院在线观看| 亚洲第一av免费看| svipshipincom国产片| 日本精品一区二区三区蜜桃| 国产成人免费无遮挡视频| 女性生殖器流出的白浆| 欧美乱码精品一区二区三区| 国产福利在线免费观看视频| 亚洲专区国产一区二区|