Windows 窗设计时结构
生活随笔
收集整理的這篇文章主要介紹了
Windows 窗设计时结构
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Windows 窗設(shè)計(jì)時(shí)結(jié)構(gòu)
Windows 窗體編程設(shè)計(jì)時(shí)結(jié)構(gòu)
下面的闡釋概述了 .NET Framework 中的設(shè)計(jì)時(shí)結(jié)構(gòu)。
screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='點(diǎn)擊在新窗口瀏覽圖片\nCTRL+Mouse 滾輪可放大/縮小';}" οnclick="if(!this.resized) {return true;} else {window.open(this.src);}" src="http://msdn2.microsoft.com/zh-cn/library/c5z9s1h4.Local_-1517273875_dtarchitecture(zh-cn,VS.80).gif" οnlοad="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='點(diǎn)擊在新窗口瀏覽圖片\nCTRL+Mouse 滾輪可放大/縮小';}" border=0> .NET Framework 為在設(shè)計(jì)時(shí)環(huán)境中自定義組件行為和用戶界面提供了接口和類。設(shè)計(jì)時(shí)環(huán)境通常包括用于排列組件的窗體設(shè)計(jì)器和用于配置組件的屬性值的屬性瀏覽器。設(shè)計(jì)時(shí)環(huán)境通常還會(huì)提供設(shè)計(jì)時(shí)機(jī)制可以訪問和使用的設(shè)計(jì)時(shí)服務(wù)。
.NET Framework 定義了開發(fā)人員可用來實(shí)現(xiàn)自定義設(shè)計(jì)時(shí)支持的接口。擴(kuò)展設(shè)計(jì)時(shí)支持的主要機(jī)制可分為以下幾類:設(shè)計(jì)器、類型轉(zhuǎn)換器和 UI 類型編輯器。屬性會(huì)應(yīng)用到類型和類型成員,以使它們與這些設(shè)計(jì)時(shí)支持提供程序關(guān)聯(lián)。
屬性屬性將類型或類型成員與擴(kuò)展設(shè)計(jì)時(shí)行為的類關(guān)聯(lián)。DesignerAttribute 使類型與設(shè)計(jì)器關(guān)聯(lián)。TypeConverterAttribute 使類型或類型成員與類型轉(zhuǎn)換器關(guān)聯(lián)。EditorAttribute 使類型或類型成員與 UI 類型編輯器關(guān)聯(lián)。有關(guān) .NET Framework 中的屬性的更多信息,請參見組件的設(shè)計(jì)時(shí)屬性 (Attribute) 和屬性與設(shè)計(jì)時(shí)支持。
設(shè)計(jì)器設(shè)計(jì)器可以在設(shè)計(jì)時(shí)自定義組件的行為,包括它的外觀、初始化以及與用戶的交互。對于選定的組件,設(shè)計(jì)器可以添加、移除或替換屬性瀏覽器中列出的屬性。設(shè)計(jì)器可以提供用戶定義的方法,這些方法可以鏈接到某些組件事件,或從自定義菜單命令或 DesignerVerb 中執(zhí)行。設(shè)計(jì)器還可以使用由設(shè)計(jì)時(shí)環(huán)境提供的服務(wù)。有關(guān)設(shè)計(jì)器的更多信息,請參見自定義設(shè)計(jì)器。
類型轉(zhuǎn)換器通過實(shí)現(xiàn)類型轉(zhuǎn)換器,可在該轉(zhuǎn)換器的既定支持類型和其他數(shù)據(jù)類型(在這些數(shù)據(jù)類型之間該轉(zhuǎn)換器可以來回翻譯值)之間轉(zhuǎn)換值。類型轉(zhuǎn)換器還可提供邏輯,以便在設(shè)計(jì)時(shí)能夠在屬性瀏覽器內(nèi)配置屬性。對于類型轉(zhuǎn)換器在屬性瀏覽器中在設(shè)計(jì)時(shí)支持的屬性類型,類型轉(zhuǎn)換器可以為該屬性提供標(biāo)準(zhǔn)值的列表。類型轉(zhuǎn)換器還可以生成初始化代碼,以便在設(shè)計(jì)時(shí)初始化屬性。有關(guān)實(shí)現(xiàn)類型轉(zhuǎn)換器的信息,請參見如何:實(shí)現(xiàn)類型轉(zhuǎn)換器。
UI 類型編輯器UI 類型編輯器可以提供一個(gè)自定義用戶界面 (UI),以便在設(shè)計(jì)時(shí)編輯屬性的值并顯示屬性值的表示形式。UI 類型編輯器是特定于具體類型的,并且提供了用戶界面,以便在設(shè)計(jì)時(shí)配置該編輯器既定支持的屬性類型或不具有重寫屬性的派生類型的屬性。UI 類型編輯器可以顯示“Windows 窗體”或下拉配置界面以便配置屬性。有關(guān)實(shí)現(xiàn) UI 類型編輯器的更多信息,請參見如何:實(shí)現(xiàn)用戶界面類型編輯器。
| screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='點(diǎn)擊在新窗口瀏覽圖片\nCTRL+Mouse 滾輪可放大/縮小';}" οnclick="if(!this.resized) {return true;} else {window.open(this.src);}" src="http://msdn2.microsoft.com/zh-cn/library/c5z9s1h4.note(zh-cn,VS.80).gif" οnlοad="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='點(diǎn)擊在新窗口瀏覽圖片\nCTRL+Mouse 滾輪可放大/縮小';}" border=0>注意 |
| 類型轉(zhuǎn)換器和 UI 類型編輯器在設(shè)計(jì)時(shí)和運(yùn)行時(shí)都可使用,而設(shè)計(jì)器只能在設(shè)計(jì)時(shí)使用。 |
與設(shè)計(jì)相關(guān)的類型下表列出了與設(shè)計(jì)相關(guān)的命名空間中的一些重要的類。
System.Drawing.Design
| 類型 | 說明 |
| UITypeEditor | 提供用于實(shí)現(xiàn)值編輯器的基類。 |
| IToolboxService | 提供管理和查詢開發(fā)環(huán)境中的“工具箱”的方法和屬性。 |
| ToolboxItem | 提供工具箱項(xiàng)的基實(shí)現(xiàn)。 |
System.ComponentModel.Design
| 類型 | 說明 |
| DesignerActionList | 為類型提供基類,這些類型定義用于創(chuàng)建智能標(biāo)記面板的項(xiàng)目的列表。 |
| DesignSurface | 為設(shè)計(jì)組件提供一個(gè)用戶界面。 |
| IDesigner | 提供構(gòu)建自定義設(shè)計(jì)器的基本框架。 |
| IRootDesigner | 提供對根級設(shè)計(jì)器視圖技術(shù)的支持。 |
| IExtenderProviderService | 提供一個(gè)接口,用于在設(shè)計(jì)時(shí)添加和移除擴(kuò)展程序提供程序。 |
| UndoEngine | 指定一般撤消/重復(fù)功能。 |
System.Windows.Forms.Design
| 類型 | 說明 |
| IWindowsFormsEditorService | 提供一個(gè)接口,供 UI 類型編輯器用來在設(shè)計(jì)模式下顯示 Windows 窗體,或顯示 PropertyGrid 控件中的下拉區(qū)域中的控件。 |
| ControlDesigner | 基設(shè)計(jì)器類,用于擴(kuò)展 Control 的設(shè)計(jì)模式行為。 |
| DocumentDesigner | 基設(shè)計(jì)器類,用于擴(kuò)展支持嵌套控件并接收滾動(dòng)消息的 Control 的設(shè)計(jì)模式行為,并為其提供根級設(shè)計(jì)模式視圖。 |
System.Windows.Forms.Design.Behavior
| 類型 | 說明 |
| BehaviorService | 管理設(shè)計(jì)器中的用戶界面。 |
| Behavior | 表示由 BehaviorService 管理的 Behavior 對象。 |
| Adorner | 管理與用戶界面相關(guān)的 Glyph 對象的集合。此類不能被繼承。 |
| Glyph | 表示一個(gè)由 Adorner 管理的用戶界面 (UI) 實(shí)體。 |
設(shè)計(jì)時(shí)服務(wù).NET Framework 提供一組可以擴(kuò)展設(shè)計(jì)器功能的設(shè)計(jì)時(shí)服務(wù)。使用設(shè)計(jì)模式中的組件的 GetService 方法可獲取這些服務(wù)。您可以使用 IDesignerHost 服務(wù)接口的 AddService 方法來添加您自己的可從設(shè)計(jì)模式項(xiàng)目中訪問的服務(wù)類型。
IComponentChangeService 接口允許設(shè)計(jì)器在編程人員在設(shè)計(jì)時(shí)環(huán)境中更改、添加或移除組件時(shí)接收通知。
IDesignerEventService 接口允許設(shè)計(jì)器在編程人員在設(shè)計(jì)時(shí)環(huán)境中添加或移除設(shè)計(jì)器時(shí)以及當(dāng)前組件選擇發(fā)生更改時(shí)接收通知。
IDesignerFilter 接口允許設(shè)計(jì)器在屬性瀏覽器中為其組件顯示的屬性集合添加屬性以及篩選屬性集合中的屬性。
IDesignerHost 接口提供了一個(gè)用于執(zhí)行以下操作的接口:添加和檢索服務(wù),處理與設(shè)計(jì)器狀態(tài)相關(guān)的事件,檢測設(shè)計(jì)器當(dāng)前是否正在加載,以及管理組件或設(shè)計(jì)器事務(wù)。設(shè)計(jì)器事務(wù)使操作序列能夠按這樣一種模式發(fā)生:防止設(shè)計(jì)時(shí)視圖在一系列操作完成之前刷新其顯示,以便改善性能,同時(shí),設(shè)計(jì)器事務(wù)還提供了一種機(jī)制,可使事務(wù)的組件操作能夠被撤消并恢復(fù)以前的狀態(tài)。
IDesignerOptionService 接口允許設(shè)計(jì)器獲取和設(shè)置 Windows 窗體設(shè)計(jì)器屬性網(wǎng)格中列出的屬性值,在 Visual Studio 環(huán)境中,可從“工具”菜單中的“選項(xiàng)”菜單項(xiàng)訪問 Windows 窗體設(shè)計(jì)器屬性網(wǎng)格。DesignerOptionService 類擴(kuò)展了查詢選項(xiàng)的靈活性。
對于用戶定義的數(shù)據(jù)和可由鍵或值訪問的鍵對,IDictionaryService 接口允許設(shè)計(jì)器使用基于鍵的集合。
當(dāng)選中組件時(shí),IEventBindingService 接口允許設(shè)計(jì)器在設(shè)計(jì)時(shí)公開屬性瀏覽器中的組件的事件。
IExtenderListService 接口允許設(shè)計(jì)器在設(shè)計(jì)時(shí)環(huán)境中獲取當(dāng)前活動(dòng)的擴(kuò)展程序提供程序。IExtenderProviderService 接口允許設(shè)計(jì)器在設(shè)計(jì)時(shí)添加或移除擴(kuò)展程序提供程序。
IHelpService 接口允許設(shè)計(jì)器創(chuàng)建和移除幫助服務(wù)上下文、創(chuàng)建和移除幫助上下文屬性以及按照關(guān)鍵字或 URL 顯示幫助主題。
IInheritanceService 接口允許設(shè)計(jì)器搜索派生類的組件并標(biāo)識每一組件的任何繼承屬性。
IMenuCommandService 接口允許設(shè)計(jì)器在設(shè)計(jì)時(shí)環(huán)境中搜索、添加、移除或調(diào)用菜單命令。
IReferenceService 接口允許設(shè)計(jì)器在當(dāng)前設(shè)計(jì)模式項(xiàng)目中按引用獲取對象名稱,按名稱獲取對對象的引用,獲取對指定組件的父級引用,或獲取對指定類型的對象的引用。
IResourceService 接口允許設(shè)計(jì)器為指定的 CultureInfo 獲取資源讀取器或資源編寫器。
IRootDesigner 接口允許設(shè)計(jì)器使用自定義設(shè)計(jì)器視圖屏幕替換根設(shè)計(jì)器視圖。IRootDesigner 接口必須由組件的設(shè)計(jì)器實(shí)現(xiàn)。
ISelectionService 接口允許設(shè)計(jì)器獲取對當(dāng)前所選組件的引用的集合,設(shè)置組件或組件集合的選定內(nèi)容,以及確定是否選定了組件。
IServiceContainer 接口允許設(shè)計(jì)器添加或移除可被其他組件或設(shè)計(jì)器使用的服務(wù)。
ITypeDescriptorFilterService 接口允許組件或設(shè)計(jì)器在設(shè)計(jì)時(shí)篩選由任何組件公開的屬性 (Attribute)、事件和屬性 (Property)。ITypeDescriptorFilterService 接口必須由一個(gè)類實(shí)現(xiàn);而使用設(shè)計(jì)模式中設(shè)置的組件的 Site 的 AddService 方法,應(yīng)當(dāng)可以將該類添加為服務(wù)。
ITypeResolutionService 接口允許設(shè)計(jì)器給項(xiàng)目添加對程序集的引用,按名稱獲取類型或程序集,以及獲取指定程序集的路徑。
DesignerActionService 和 DesignerActionUIService 類實(shí)現(xiàn)自定義設(shè)計(jì)器的智能標(biāo)記功能。有關(guān)更多信息,請參見 Windows 窗體的設(shè)計(jì)器命令和 DesignerAction 對象模型。
BehaviorService 管理設(shè)計(jì)器中的用戶界面。它為在設(shè)計(jì)時(shí)操作用戶界面元素(例如與鼠標(biāo)相關(guān)的事件、菜單命令和 OLE 拖放操作)提供了一種統(tǒng)一的方式。有關(guān)更多信息,請參見行為服務(wù)概述。
CodeDomComponentSerializationService 類可將一組組件或可序列化的對象序列化到一個(gè)序列化存儲區(qū)中。有關(guān)更多信息,請參見設(shè)計(jì)器序列化概述。
歡迎大家加入 "小強(qiáng)控件園" ,有更多驚喜等著你,進(jìn)入小強(qiáng)控件園
工欲善其事,必先利其器
小強(qiáng)控件園,MVP技術(shù)后盾!趕快加入!
轉(zhuǎn)載于:https://www.cnblogs.com/HeroBeast/archive/2008/01/20/1046519.html
與50位技術(shù)專家面對面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的Windows 窗设计时结构的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mime类型与文件后缀对照表及探测文件M
- 下一篇: 基于visual graph开发实时线损