Data Standard 中的每個對話方塊都以副檔名為 .xaml (可延伸應用程式標記語言) 的檔案為基礎。修改 XAML 檔案來自訂「Data Standard」對話方塊。
XAML 檔案描述「Data Standard」對話方塊的配置,包括使用的控制 (標示、文字方塊、組合方塊等),以及這些控制所繫結的 CAD 或 Vault 性質。
XAML 檔案是 XML 檔案,可以使用任何文字/XML 編輯器進行編輯。免費 XML 編輯器的一個很好選擇就是 Microsoft XML Notepad,或任何可格式化 XML 的其他編輯器。Autodesk 建議使用 Visual Studio (Express 或更高版本),以獲得最佳編輯體驗。由於 XAML 語法區分大小寫,最好是使用能夠支援大寫並捕獲拼字錯誤的編輯器。
如果「Data Standard」對話方塊需要展示更多、更少或不同資訊,請編輯 XAML 檔案。「規劃」資料夾中的 PS1 檔案控制對話方塊行為。
此主題簡要描述了最常用的控制。若要取得有關這些控制及其他控制的更多資訊,請造訪 Microsoft 說明頁面。
每個 XAML 檔案都具有不同的部分:最常用的有「資源」、「型式」和控制部分。
「資源」部分提供在控制部分重複使用的定義。例如,如果您的公司顏色為綠色,則可以定義控制上顯示的所有文字均為綠色。
觸發器位於「型式」部分中。觸發器定義控制的外觀或行為方式,具體取決於指定的情況 (例如,建立新記錄或編輯既有記錄)。但是,更複雜的行為在 PS1 檔案中定義。
控制部分或配置區域通常以控制 <Grid> 開始。格線將對話方塊分割為列和欄,就像 Excel 表格一樣。依您的設計需要,合併及分割儲存格。在每個儲存格中,您可以放置一個或多個控制 (例如標示),以提供簡單文字或用於文字輸入的文字方塊。
XAML 檔案的配置類似於表格,包含列和欄。這使得對話方塊及其控制具有動態特性,這表示,如果您使用滑鼠重調視窗大小,控制也會自動重調大小。您也可以使用固定座標,但在此情況下,當使用者重調對話方塊大小,或某些使用者規劃了較大的 Windows 字體時,對話方塊中的控制仍會位於座標中且可能會重疊,或不消耗對話方塊中的可用空間。因此,Autodesk 建議使用表格方法,並讓每個控制都在定義的儲存格內展開。
由於對話方塊像一個表格,因此,在您設計對話方塊時,請考慮所需的欄數和列數。通常兩欄為宜:左側一欄,具有固定寬度並用於標示,右側一欄,具有動態寬度並用於控制。這也是預設對話方塊的建立方式。視所需的列數而定,相應的列定義在格線中進行定義。格線內的每個控制都具有列和欄參考 (永遠從 0 開始),以便展示相應的控制。
在 XML 和 XAML 中,每個關鍵字都嵌入尖括號 (<關鍵字>) 中。通常,定義圖塊以關鍵字開始,例如 <Grid>,並以帶斜線字首的同一關鍵字結束,如 </Grid>。對於單行陳述式,您可能也會看到此語法:<Label ... />。關鍵字的進一步屬性,或嵌套在其中的進一步關鍵字,可定義對話方塊的結構。XAML 區分大小寫,因此請注意大寫/小寫。
Grid
網格 (Grid) 是一種配置面板,使用列和欄的表格結構控制所有內容。所有儲存格 (儲存格因其列和欄的組合而唯一) 均可包含多個控制,如標示和文字方塊。
這是網格的基本結構。網格需要列,您可以在 Grid.RowDefinition 部分中定義列。高度「30」針對高度定義了固定的值,且之後無法變更。值「auto」讓列具有動態高度,以便可以根據控制變粗或變細。將相同值套用至欄寬。
定義列和欄後,您可以加入控制,例如標示和文字方塊。控制必須貼附於兩個性質:Grid.Column 和 Grid.Row。這些性質定義控制在格線中的位置。第一列是 0,因此第二列是 1,以此類推。
Label
標示 (Label) 是使用者無法編輯的欄位名稱。它們包含文字,指示標示的用途,以便使用者知道在對應的文字方塊或組合方塊中需要插入哪種類型的值。例如,名為「意見」的標示可能位於空白文字方塊旁邊。使用者會知道要在該文字方塊中提供任何註釋。
標示具有 Content 性質。此性質是為標示顯示的文字。
<Label Content="sample" Grid.Row ="0" Grid.Colum="0"/>
預設對話方塊是代碼字串,例如這個 <Label Content="{Binding UIString[LBL2]}" ....>,其中內容會繫結至當地語系化文字。當對話方塊以不同語言展示文字時,會使用此語法。如果您的專案只需要一種語言,則設定您要展示的文字。如果對話方塊需要進行當地語系化,請使用當地語系化語法。請參閱〈當地語系化〉,以取得更多資訊。
TextBox
文字方塊 (TextBox) 是使用者可以編輯的欄位。Data Standard 可以讀取輸入的值,並將其用於其他作業。
<ComboBox Name="MaterialCombo" Text="{Binding Prop[Cost].Value}" Grid.Column="3" Grid.Row="6" ItemsSource="{Binding Prop[Cost].ListValues}"/>
Button
按鈕 (Button) 是一種使用者介面元素,可讓使用者輕鬆地觸發事件 (例如「搜尋」或「儲存」)。按鈕需要「指令」性質。此「指令」性質可識別在按一下按鈕時將會執行的動作。
<Button Command="{Binding PsCmd[MyCommand]}" Grid.Column="1" Margin="0,5,0,5" Width="80">Click</Button>
「指令」會繫結至 PsCmd 關鍵字,這有助於將指令動作連結至指定的 PowerShell 函數。可以使用 CommandParameter="my args" 屬性,將引數傳遞給該函數。之後,此引數便在該函數中做為 $dsParam 變數提供。
Binding
若要使用這些元件中的一個來控制或變更 Vault 檔案性質,您需要瞭解 "{Binding Prop[myProp ].Value}"。
繫結 (Binding) 可讓您將值對映至特定 CAD 或 Vault 性質。例如,您可以將文字方塊的文字繫結至「標題」性質,以便每次在此特定文字方塊中輸入內容時,「標題」性質都會自動更新。繫結是將性質變更自動化的好方法,可以減少終端使用者的工作量
Prop[ ] 是用於繫結的基本函數。使用此函數,您可以存取檔案 (CAD 和 Vault) 或相應物件 (資料夾、項目、自訂物件等) 的性質。如果要將文字方塊對映至「工程師」性質,請寫入 <TextBox text="{Binding Prop[Engineer].Value}"/>建立文字方塊時,Prop[ ] 會傳回該性質的值。每次文字方塊更新時,都會通知 Prop[ ] 函數,該函數會將新值寫入至對映的檔案性質。
您可以使用 Visual Studio 編輯 .xaml 檔案。Visual Studio 可協助您放置元素,並避免拼字錯誤。
現在您位於新專案中,應會看到「MainWindow.xaml」頁籤、「MainWindow.xam.cs」頁籤及其他頁籤。您不需要這些頁籤,只需要提供的環境來編輯 .xaml 檔案。為了要編輯 .xaml,您要連結至 .xaml 檔案。不需要將 .xaml 匯入至專案。
會顯示一個名為「問題載入中」的錯誤。
設計視窗中將顯示對話方塊。您可以選取對話方塊中的一個區域,Visual Studio 即會跳至 XAML 檔案中的該部分。開始插入或修改欄位。請參閱〈Data Standard 對話方塊〉,以取得更多資訊。