亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種簡單窗口半透明方法的研究與實現(xiàn)

        2016-03-10 07:44:33馮偉桓
        成都大學學報(自然科學版) 2016年1期
        關鍵詞:控件

        馮偉桓, 錢 歡

        (1.成都理工大學 數(shù)學地質(zhì)四川省重點實驗室, 四川 成都 610059;

        2.中南大學 數(shù)學與統(tǒng)計學院, 湖南 長沙 410083)

        ?

        一種簡單窗口半透明方法的研究與實現(xiàn)

        馮偉桓1, 錢歡2

        (1.成都理工大學 數(shù)學地質(zhì)四川省重點實驗室, 四川 成都610059;

        2.中南大學 數(shù)學與統(tǒng)計學院, 湖南 長沙410083)

        摘要:目前窗口半透明的應用越來越廣泛,越來越多的窗口呈現(xiàn)出風格迥異的界面設計,如此別具一格的設計,提高了用戶的體驗.基于WPF實現(xiàn)了一種較為簡單的窗口半透明方法,詳細介紹了實現(xiàn)窗口半透明的原理和流程,提出并實現(xiàn)了窗口半透明且控件不透明的方法.算法運行結(jié)果表明,該方法效率較高、實現(xiàn)簡單.

        關鍵詞:窗口半透明;WPF;控件

        0引言

        早期的計算機操作系統(tǒng)中,窗口作為應用程序和用戶溝通的界面,往往是不透明的,即一個窗口被其他窗口覆蓋的部分完全不可見,這在一定程度上限制了用戶的視野和操作,并且一成不變的窗口雖然使得整個窗口系統(tǒng)風格統(tǒng)一,但同時也使用戶更容易產(chǎn)生審美疲勞,降低了用戶的體驗.目前,主流的計算機操作系統(tǒng)都在積極引入窗口半透明機制,比如,蘋果公司推出的MAC OS X首次以備份緩沖和OpenGL硬件加速技術實現(xiàn)了在系統(tǒng)層次上的窗口半透明.此外,雖然Unix和類Unix操作系統(tǒng)的窗口還沒有實現(xiàn)半透明,但其開發(fā)人員正在對它增加一些窗口半透明的擴展,然而效率很低,并且速度很慢.而由微軟推出的Windows Vista和Windows 7系統(tǒng)可以通過開啟Aero特效實現(xiàn)系統(tǒng)層次上的窗口邊框半透明,最新的Windows 8和Windows 10操作系統(tǒng),已經(jīng)引入了窗口半透明機制.可見,半透明是窗口系統(tǒng)未來的發(fā)展趨勢之一.本研究主要討論一種較為簡單且高效的實現(xiàn)窗口半透明方法——基于WPF[1-5]的窗口半透明實現(xiàn).

        1窗口半透明實現(xiàn)方案

        1.1基于備份緩沖的窗口半透明實現(xiàn)

        備份緩沖是現(xiàn)有的窗口半透明方法之一,其主要思路是為每個窗口增加一個α屬性,用于指示每個窗口的不透明度,在窗口更新和顯示前,獲得窗口即將遮擋部分的內(nèi)容,并保存在內(nèi)存中備份,然后在窗口顯示的時候,先顯示在內(nèi)存中保存好的內(nèi)容備份,再將待顯示的窗口內(nèi)容乘以α屬性后顯示在窗口上,就可以實現(xiàn)窗口半透明效果.

        備份緩沖這種方法雖然可以較好地實現(xiàn)窗口半透明,但這種方法需要在窗口更新和顯示前實時更新備份窗口即將遮擋的內(nèi)容,因此會消耗大量的資源,并且效率比較低.雖然備份緩沖可以結(jié)合OpenGL硬件加速技術來提高效率,降低消耗的資源,但這樣會使得算法復雜度大大增加.

        1.2基于WPF的窗口半透明實現(xiàn)

        1.2.1WPF簡介.

        WPF(Windows Presentation Foundation)是微軟推出全新的用戶界面框架,由.NET Framework 3.0引入,旨在為應用程序的編寫提供統(tǒng)一的編程語言、模型和框架,用于實現(xiàn)能帶給用戶震撼視覺體驗的Windows客戶端應用程序.

        WPF的界面設計用的是基于XML語法的XAML語言,而應用程序后臺邏輯的開發(fā)大多用的都是C#.界面設計人員可以通過微軟提供的Expression Blend工具或直接手寫XAML文件的方式開發(fā)和設計應用程序的界面,而開發(fā)人員則可以更加關心應用程序的后臺邏輯,真正做到了區(qū)分界面設計人員與開發(fā)人員的工作.

        1.2.2實現(xiàn)原理.

        WPF中所有的用戶界面元素,都被稱為控件.控件從用途上可以分為4種:內(nèi)容控件(Content Controls)、條目控件(Items Controls)、文本控件(Text Controls)和范圍控件(Range Controls).

        窗口在WPF中以Window控件的形式存在.根據(jù)窗口的特性,可以確定Window控件是屬于內(nèi)容控件,即Window控件繼承自ContentControl并且具有重要的Content屬性.ControlControl是繼承自Control類的,因此Window控件具有繼承而來的Opacity屬性.

        Opacity屬性是在Control類中定義的,用于控制控件的不透明度,可以在0到1之間取值,0表示完全透明,1表示完全不透明.Window控件具有Opacity屬性,可以利用該屬性實現(xiàn)窗口半透明.

        1.2.3實現(xiàn)流程.

        通過Opactiy屬性可以使控件呈現(xiàn)出半透明.但窗口Window控件作為一種特殊的控件,僅僅設置Opacity屬性,是遠遠不夠的,圖1展示了僅僅將Opacity屬性設置為0的情況.

        圖1將Window控件Opacity屬性設置為0時的窗口

        如圖1所示,僅僅將Window控件的Opacity屬性設置為0時,整個窗口除邊框以外都呈現(xiàn)為黑色.這是因為窗口樣式默認包含了邊框,而且默認的窗口是不支持透明的.

        為了去除窗口邊框,可以設置Window控件的WindowStyle屬性.WindowStyle屬性是枚舉類型值,可以取的值有None、SingleBorderWindow、ThreeDBorderWindow和ToolWindow.其中,None表示窗口僅工作區(qū)可見,邊框不會顯示,正符合要求,所以為實現(xiàn)窗口半透明,還需要將Window控件的WindowStyle屬性設置為None.圖2展示了去除默認的窗口邊框后的情況.

        圖2 將Window控件WindowStyle屬性設置為None時的窗口

        如圖2所示,窗口雖然去掉了邊框,默認的標題欄也不再顯示,但并沒有像預期一樣,呈現(xiàn)出窗口半透明.這是因為窗口默認不支持半透明,只能通過修改Window控件的AllowsTransparency屬性修改窗口默認行為.設置Opacity屬性為0.5,使窗口實現(xiàn)半透明;設置WindowStyle屬性為None,去除窗口默認邊框;設置AllowsTransparency屬性為True,使窗口支持半透明.最后實現(xiàn)的效果如圖3所示.

        圖3最簡單的半透明窗口

        在圖3中,窗口呈現(xiàn)出白色半透明,并且窗口中的控件也呈半透明顯示,這是因為窗口默認的背景色是白色,窗口中的控件作為窗口的子控件會延續(xù)父控件的透明度.因此子控件的Opacity屬性雖然依舊是默認值1,表示控件不透明,但卻因為父控件的透明度,會作用到父控件的內(nèi)容,即其子控件上,使子控件最終顯示出與父控件相同的透明度.

        因此,在窗口設置為半透明時,子控件會延續(xù)父控件的透明度,最終子控件也表現(xiàn)出半透明.這樣的效果,稱為全局透明,有時候也會需要這樣的效果,例如,在Office Word中對選中字體提供快捷操作的窗口,即使用了全局透明的效果,具體如圖4所示.但在大部分情況下使用全局透明效果,會使子控件看起來模糊不清.因此全局透明效果的應用十分有限.

        圖4Office Word全局透明效果應用實例

        1.2.4一種較為完善的方法.

        本研究提出一種較為完善的方法,實現(xiàn)窗口半透明,且控件不透明的界面效果.其實現(xiàn)流程如圖5所示,效果如圖6所示.

        圖5一種較為完善方法的實現(xiàn)流程

        圖6窗口半透明,控件不透明效果

        按照上述實現(xiàn)流程,實際由一個和窗口一樣大小的Border修飾控件來控制窗口的不透明度,從而實現(xiàn)窗口半透明,且控件不透明效果.該方法的關鍵代碼如下:

        當風送系統(tǒng)的風機轉(zhuǎn)速在2000轉(zhuǎn)/分,籽粒水分含量大于20%時,風道入口容易堵塞,需打開堵蓋疏通,工作量較大,轉(zhuǎn)速加大則出現(xiàn)嗑籽和撒籽現(xiàn)象。建議在收獲前測定葵盤、籽粒含水率,選擇籽粒水分含水率小于20%的地塊進行收獲。

        〈Window x:Class=″TestWPF.MainWindow″

        ……

        Background=″Transparent″

        WindowStyle=″None″

        AllowsTransparency=″True″〉

        〈Grid〉

        〈Border BorderBrush=″Black″

        Background=″White″

        CornerRadius=″5″

        BorderThickness=″1″

        Opacity=″0.8″/〉

        〈Grid〉……〈Grid/〉

        〈/Grid〉

        〈/Window〉

        1.3方法討論

        本研究提出方法的優(yōu)點是,代碼實現(xiàn)的時間復雜度和算法復雜度都比較低,并且顯示效果較好.同時,基于WPF使該方法獲得較好的可擴展性,可較為簡單且高效地實現(xiàn)了窗口半透明效果.但該方法的缺點在于需要去除窗口自帶的邊框,而對于去除之后的窗口,將無法使用由系統(tǒng)層次提供的移動窗口、最小化窗口、最大化窗口、關閉窗口和動態(tài)改變窗口大小等功能.因此,要想實現(xiàn)功能完備的半透明窗口,還需要進一步手動編寫后臺邏輯代碼實現(xiàn)這些由系統(tǒng)層次提供的功能.

        2結(jié)論

        窗口半透明相當于增加了電腦屏幕的空間,使用戶能夠看到更多的內(nèi)容.本研究實現(xiàn)了一種簡單、高效,且基于WPF來實現(xiàn)窗口系統(tǒng)半透明的方法.由于WPF的擴展性,使用該種方法創(chuàng)建的半透明窗口,具有很強的多樣性.在一定條件下,稍微調(diào)整一個或者幾個窗口控件的屬性值,就可以得到花樣繁多、風格迥異的窗口.

        參考文獻:

        [1]MacDonald M.ProWPFinC# 2012:Windowspresentationfoundationin.NET4.5[M].New York,USA:Apress Media,2012.

        [2]Sells C,Griffitbs I.ProgrammingWPF[M].California,USA:O'Reilly Media,Inc,2007.

        [3]Eric White.GDI+程序設計[M].北京:清華大學出版社,2002.

        [4]Adam Nathan.Windowspresentationfoundationunleashed[M].Carmel,Indiana:Sams Publishing,2006.

        [5]琚彬.基于WPF平臺的自定義控件開發(fā)[D].西安:西安電子科技大學,2008.

        Research and Implementation of Simple Method for Semi-Transparent Window

        FENGWeihuan1,QIANHuan2

        (1.Geomathematics Key Laboratory of Sichuan Province, Chengdu University of Technology, Chengdu 610059, China;2.Mathematics and Statistics Academy, Central South University, Changsha 410083, China)

        Abstract:Currently,the application of semi-transparent window has become more widely with more and more windows showing different styles of interface design.All those different designs draw more attention,and also improve the user experience.This paper does the research on semi-transparent windows and comes up with a simpler way to realize the translucency of the window.The paper also discusses the details of principles and processes to realize its translucency and puts forward a method to realize the translucency of windows and the opaque of controls.The final operating results show that this method is more efficient,and easy to be realized.

        Key words:semi-transparent window;WPF;control

        中圖分類號:TP316

        文獻標志碼:A

        作者簡介:馮偉桓(1991 — ), 男, 碩士研究生, 從事計算機3S軟件技術研究.

        收稿日期:2015-12-16.

        文章編號:1004-5422(2016)01-0067-04

        猜你喜歡
        控件
        一種用戶程序的自動布局算法
        基于.net的用戶定義驗證控件的應用分析
        中文信息(2020年10期)2020-11-30 08:54:09
        關于.net控件數(shù)組的探討
        軟件(2018年7期)2018-08-13 09:44:42
        Excel深度考核自動閱卷系統(tǒng)中控件的評判方法
        ASP.NET服務器端驗證控件的使用
        電子世界(2014年12期)2014-10-21 11:09:39
        基于JARI_EGK圖形開發(fā)系統(tǒng)在聲吶多功能顯控臺中的應用
        就這樣玩會VBA中常見的自定義控件
        電腦迷(2012年24期)2012-04-29 00:44:03
        基于嵌入式MINIGUI控件子類化技術的深入研究與應用
        Spreadsheet控件在Delphi數(shù)據(jù)庫系統(tǒng)中的編程與應用
        在PowerBuUder中利用WinSock控件制作簡單的Web服務器
        全部孕妇毛片丰满孕妇孕交| 日本中文字幕乱码中文乱码| 中文字日产幕码三区的做法大全| 免费久久99精品国产| 国产成人一区二区三区| 国产女在线| 日产乱码一区二区国产内射| 国内偷拍国内精品多白86| 小辣椒福利视频导航| 毛片免费全部无码播放| 老肥熟女老女人野外免费区| 亚洲国产精品区在线观看| 蜜臀av色欲a片无码精品一区| 色先锋av资源中文字幕| 99久久国产视频| 国产精品高清亚洲精品| 熟女中文字幕一区二区三区| 亚洲av无码一区二区三区观看| 国产精品亚洲一区二区无码| 国产综合精品久久久久成人| 久久91精品国产一区二区| 国内最真实的xxxx人伦| 好爽…又高潮了毛片免费看| 日本高清一区二区三区视频| 亚洲丝袜美腿在线视频| 日韩成人无码| 国产九色AV刺激露脸对白| 成a人片亚洲日本久久| 亚洲色图片区| 婷婷亚洲综合五月天小说| 日韩女优一区二区视频| 亚洲一区二区三区日本久久九| 大地资源网高清在线播放| 国产黄色片在线观看| 亚洲最黄视频一区二区| 2021国产精品视频网站| 天堂影院一区二区三区四区| 区无码字幕中文色| 亚洲不卡在线免费视频| 日本老熟妇乱| 亚洲国产另类久久久精品小说|