共用方式為


自訂及擴充網域指定的語言

 

發行︰ 2016年7月

如需 Visual Studio 2017 的最新文件請參閱 Visual Studio 2017 文件

Visual Studio 模型和視覺效果 SDK (VMSDK) 提供數個層級定義模型工具︰

  1. 定義使用 DSL 定義圖表的定義域專屬語言 (DSL)。 您可以使用圖表標記法,可讀取的 XML 格式,並產生程式碼和其他成品所需的基本工具,快速建立 DSL。

    如需詳細資訊,請參閱如何定義定義域專屬語言

  2. 使用 DSL 定義的更進階的功能來微調 DSL。 例如,您可以進行其他使用者建立的項目時顯示的連結。 這些技術大多可在 DSL 定義中,而某些需要幾行程式碼。

  3. 使用程式碼來擴充模型化工具。 VMSDK 是為了能讓您輕鬆整合擴充功能與從 DSL 定義產生的程式碼而專門設計的。 如需詳細資訊,請參閱用來自訂網域特定語言撰寫程式碼

注意

當您已更新的 DSL 定義檔時,別忘了按一下轉換所有範本後再重建您的方案的 [方案總管] 工具列中。

本章節內容

若要達成這個效果 請參閱本主題
允許使用者設定圖形的色彩和樣式屬性。 以滑鼠右鍵按一下圖形或連接器類別,並指向加入已公開,按一下項目。

請參閱自訂圖表上的展示
不同類別的模型項目類似在圖表中,共用屬性,例如初始高度和寬度、 色彩、 工具提示。 使用圖形或連接器類別之間的繼承。 在衍生的圖形與衍生的網域類別之間的對應繼承父系的對應詳細資料。

或者,您也可以將不同的網域類別對應至相同的圖形類別。
類別的模型項目會顯示不同的圖形內容。 將多個圖形類別對應至相同的網域類別。 當您建置方案時,請遵循錯誤報告,並提供要求的程式碼,以決定要使用何種圖形。
圖形色彩或字型等其他功能會指出目前的狀態。 請參閱更新圖案和接點來反映模型

建立更新公開的屬性的規則。 請參閱規則傳播模型內的變更

或者,使用 OnAssociatedPropertyChanged() 更新非公開的功能,例如連結箭號或字型。
指出狀態的變更圖形上的圖示。 在 [DSL 詳細資料] 視窗設定裝飾項目對應的可見性。 找出相同的位置上的數個映像裝飾項目。 請參閱更新圖案和接點來反映模型

或者,您也可以覆寫ImageField.GetDisplayImage()。 請參閱範例ImageField
設定在圖形的背景影像 若要新增錨定的 ImageField InitializeInstanceResources() 會覆寫。 請參閱自訂圖表上的展示
任意深度的巢狀處理圖案 設定內嵌樹狀目錄中的遞迴。 定義包含圖形 BoundsRules。 請參閱自訂圖表上的展示
附加在固定的點上的項目界限的連接器。 定義內嵌的終端機項目,由小圖表上的連接埠。 若要修正之連接埠就地使用 BoundsRules。 電路圖表範例,請參閱Visualization and Modeling SDK
文字欄位會顯示衍生自其他值的值。 將文字裝飾項目對應至計算或自訂儲存網域屬性。 如需詳細資訊,請參閱計算和儲存體的自訂內容
將模型項目,或圖形之間的變更傳播 請參閱驗證定義域專屬語言
將變更傳播至資源,例如其他Visual Studio外部存放區的延伸模組。 請參閱事件處理常式傳播模型外的變更
屬性視窗會顯示相關項目的屬性。 設定轉送屬性。 請參閱[自訂屬性] 視窗](../Topic/Customizing%20the%20Properties%20Window.md)。
屬性類別 [屬性] 視窗分為稱 [分類] 的區段。 設定類別的網域屬性。 屬性具有相同的類別目錄名稱會出現在相同的區段。 您也可以設定類別的關聯性角色。
網域內容控制使用者存取 設定是可瀏覽false,以防止網域屬性在執行階段出現在 [屬性] 視窗中。 您仍然可以將它對應至文字裝飾項目。

 是 UI Read Only防止使用者變更網域屬性。

不會影響到網域屬性的程式存取。
變更名稱、 圖示和可見性,您的 DSL 模型總管] 中的節點。 請參閱自訂模型總管
啟用複製、 剪下和貼上 設定啟用複製貼上屬性編輯器DSL 總管] 中的節點。
複製參考連結並複製項目是每當其目標。 例如,將複製的項目附加註解。 設定傳播複本來源角色 (由 DSL 定義圖表中的網域關聯性的一端上的行) 的屬性。

撰寫程式碼來覆寫 ProcessOnCopy 以取得更複雜的效果。

請參閱自訂複製行為
刪除、 重設父代,或刪除項目時,重新連結相關項目。 設定傳播刪除關聯性角色的值。 針對更複雜的效果,覆寫ShouldVisitRelationshipShouldVisitRolePlayer方法MyDslDeleteClosure中定義的類別DomainModel.cs

請參閱自訂刪除行為
保留圖形版面配置和外觀上複製和拖放。 將圖形和連接線加入至複製ElementGroupPrototype。 若要覆寫最方便的方法是ElementOperations.CreateElementGroupPrototype()

請參閱自訂複製行為
在選擇的位置貼上圖形,例如目前的游標位置。 覆寫ClipboardCommandSet.ProcessOnCopy()若要使用的特定位置版本ElementOperations.Merge().看到自訂複製行為
貼上建立其他連結 覆寫 ClipboardCommandSet.ProcessOnPasteCommand()
啟用拖曳和卸除此圖中,其他 Dsl 或 UML 圖表和 Windows 項目 請參閱How to︰ 加入拖放處理常式
讓圖形或工具將它們拖曳至 「 子 」 圖形,例如連接埠,如同它已拖曳至父代。 定義目標物件類別,來卸除的物件轉送給父項目合併指示詞。 請參閱自訂項目的建立和移動
讓圖形或將它們拖曳至圖形,並讓其他連結的工具或建立的物件。 例如,若要允許註解可以放到它為連結的項目。 項目合併指示詞上定義目標網域類別,並定義要產生連結。 在複雜的情況下,您可以加入自訂程式碼。 請參閱自訂項目的建立和移動
使用其中一個工具,建立一組項目。 例如,具有一組固定的通訊埠的元件。 覆寫 ToolboxHelper.cs 中的工具箱初始化方法。 建立項目群組原型 (EGP) 包含的項目和其關聯性連結。 請參閱自訂工具和工具箱

請在 EGP 中包含主體和連接埠圖形,或定義 BoundsRules EGP 具現化時通訊埠圖案的位置。 請參閱BoundsRules 限制圖案位置和大小
使用一個連接工具來具現化的幾種類型的關聯性。 將連結連線指示詞 (LCD) 加入至連接產生器所叫用的工具。 Lcd 判斷兩個項目類型的關聯性的類型。 若要使這項目的狀態而定,您可以加入自訂程式碼。 請參閱自訂工具和工具箱
自黏工具 – 使用者可以按兩下任何工具來建立連續的許多圖形或連接器。 在 [DSL 總管] 中,選取 [Editor節點。 在 [屬性] 視窗中,設定使用列在首位的工具箱項目
定義功能表命令 請參閱如何︰ 修改標準功能表命令
限制與驗證規則的模型 請參閱定義域專屬語言中的驗證
從 DSL 中產生程式碼、 組態檔或文件。 從定義域專屬語言產生程式碼
自訂如何儲存模型檔案。 請參閱自訂檔案儲存體和 XML 序列化
將模型儲存至資料庫或其他媒體。 覆寫YourLanguageDocData

請參閱自訂檔案儲存體和 XML 序列化
將數個 Dsl 整合,讓它們能夠做為一個應用程式的一部分。 請參閱整合的模型,使用 Visual Studio Modelbus
允許協力廠商擴充 DSL 和控制擴充功能。 使用 MEF 擴充您的 DSL

 共用之間使用 DSL 程式庫的類別

 定義鎖定原則來建立唯讀區段

另請參閱

如何定義定義域專屬語言
撰寫程式碼來自訂定義域專屬語言
Modeling SDK for Visual Studio-定義域專屬語言