瞭解命令和控制項

邏輯與簡報分離是啟發 Windows 功能區架構命令呈現系統的設計原理,這是以設計模式為基礎的系統,其中功能和行為與公開此功能的控制項獨立實作。

簡介

本文討論功能區架構命令系統的設計。 它會描述命令和控制項的概念,並探索它們如何一起運作,以提供豐富的命令體驗,並提供一系列新的 UI 功能。

Windows 功能區命令系統

在功能區架構中,命令和控制項是獨立的實體。 命令是抽象結構,不含表示條件約束,代表特定工作或功能類別。 另一方面,控制項是透過功能區 UI 公開命令功能的具體物件。

這項區別可讓您定義沒有 UI 詳細資料的命令,而且能夠在動作意圖上執行,而不需要管理動作的叫用方式。

控制項

控制項是命令簡報所需的 UI 物件。 它們會在執行時間由架構根據使用者互動和一組固有的屬性和行為來轉譯及管理。

稱為調適型配置,UI 的架構管理彈性是功能區的絕佳優點之一。 功能區控制項可以透過架構相依或開發人員定義的版面配置範本自動重新設定自己,這些範本能夠回應各種執行時間需求,完全不需要撰寫單行的簡報程式碼。 如需詳細資訊,請參閱 透過大小定義和調整原則自訂功能區

除了調適型配置的優點之外,許多複雜的功能區控制項還提供特定 UI 問題空間的獨立解決方案。 藉由提供複雜的互動模型,功能區控制項,例如 FontControl 或 ColorPicker,可讓您透過實際字型或色彩屬性的屬性包,而不是透過標準 Windows 控制項的各種子控制項、列舉和索引值,以更抽象的方式運算元據。

命令

鬆散結合至公開功能的功能區控制項,Command 實作是主應用程式的網域,並採用事件接聽程式、命令處理常式和各種 Command 屬性的形式。

命令會在功能區標記中宣告為唯一識別碼,或在編譯時指派標記編譯器產生的識別碼。 命令會透過命令名稱與控制項相關聯,但不同于控制項,其實際功能是在程式碼中定義,其中它們透過命令識別碼系結至特定命令處理常式。

注意

在編譯時,此識別碼會儲存在識別碼定義標頭檔中,此標頭檔會將命令公開給功能區主應用程式中對應的 Command 處理常式。

 

每個命令都有 UI_COMMANDTYPE列舉中 專案化的基礎命令類型。

執行中的命令體驗

此命令模型的功能是由功能區快速存取工具列 (QAT) 示範。 QAT 可讓使用者輕鬆地為功能區 UI 中的任何控制項定義自己的快捷方式。 當使用者以滑鼠右鍵按一下功能區控制項,然後從操作功能表中選取 [ 新增至快速存取工具列 ] 時,會在執行時間動態新增至 QAT。

下圖顯示 Windows 7 Paint 功能區中的SplitButton控制項所代表的 [從命令上和貼上]。

microsoft paint 功能區中貼上 splitbutton 的圖片。

下圖顯示 Windows 7 Paint 功能區 QAT 中,仍由SplitButton控制項所代表的相同命令貼上和上。

microsoft paint qat 中貼上 splitbutton 的圖片。

當 QAT 裝載控制項時,控制項的新實例會維護原始控制項的所有功能,而不需要額外的事件接聽程式和命令處理常式來支援它。 這兩個控制項都會透過共用的命令識別碼系結至相同的功能區命令處理常式。 如此一來,不論叫用哪一個控制項,架構都會將這兩個控制項視為一個。

注意

在設計階段將命令併入 CoNtextPopup 時,就會實現相同的優點。 在此情況下,無論 SplitButton 控制項出現在功能區、QAT 或 CoNtextPopup中,都可以使用貼上命令處理常式。

 

Windows 功能區架構簡介

建立功能區應用程式

使用功能區標記宣告命令和控制項