智慧標籤架構
更新:2007 年 11 月
適用於 |
---|
本主題中的資訊僅適用於指定的 Visual Studio Tools for Office 專案和 Microsoft Office 版本。 文件層級專案
應用程式層級專案
如需詳細資訊,請參閱依應用程式和專案類型提供的功能。 |
Visual Studio Tools for Office 提供彈性的智慧標籤物件模型,可以讓您快速將智慧標籤加入至 Microsoft Office Word 文件和 Microsoft Office Excel 活頁簿。若要進一步應用,您還可以建立自己的智慧標籤辨識器,並存取智慧標籤中儲存的資料。
如需 Visual Studio Tools for Office 智慧標籤的詳細資訊,請參閱智慧標籤概觀。
物件模型概觀
Visual Studio Tools for Office 智慧標籤的物件模型為智慧標籤及其執行的動作提供各種不同類別。如需示範如何在文件中加入 Visual Studio Tools for Office 智慧標籤的程式碼範例,請參閱 HOW TO:將置智慧標籤加入至 Word 文件和 HOW TO:在 Excel 活頁簿中加入智慧標籤。
智慧標籤
Visual Studio Tools for Office 智慧標籤是指衍生自抽象 SmartTagBase 類別之任何類別的執行個體。Visual Studio Tools for Office 含有兩個可實作抽象 SmartTagBase 類別的類別:Microsoft.Office.Tools.Word.SmartTag 和 Microsoft.Office.Tools.Excel.SmartTag。除非您需要建立自己的智慧標籤辨識器,否則在文件中加入智慧標籤時,可使用這些類別的執行個體。
SmartTagBase 類別提供了下列功能:
Terms 和 Expressions 屬性,其中包含可辨識的智慧標籤詞彙。若要指定簡單字串,請將字串加入至 Terms 屬性。若要指定複雜字串,請將描述該字串的規則運算式 (Regular Expression) 加入至 Expressions 屬性。
Actions 屬性,其中包含使用者選取智慧標籤時要執行的動作。
預設的智慧標籤辨識器,可將使用者輸入與 Terms 和 Expressions 屬性的內容進行比較。
動作
當使用者選取智慧標籤時,便可以執行該智慧標籤專屬的一個或多個動作。Microsoft.Office.Tools.Word.Action 或 Microsoft.Office.Tools.Excel.Action 類別的每個執行個體都表示一個動作。這些類別可提供 BeforeCaptionShow 和 Click 事件:
BeforeCaptionShow 事件會在使用者按一下智慧標籤圖示之後即引發,但這是在智慧標籤功能表顯示之前發生的。如果您想要在執行階段修改智慧標籤功能表中的動作標題,請處理這個事件。
Click 事件會在使用者按一下智慧標籤功能表中的動作標題時引發。若要在使用者按一下動作時執行程式碼,請處理這個事件。
這些事件的事件處理常式會接收 Microsoft.Office.Tools.Excel.ActionEventArgs (適用於 Excel) 或 Microsoft.Office.Tools.Word.ActionEventArgs (適用於 Word),以提供所辨識文字及其位置的存取。
預設文字辨識行為
當使用者在文件或活頁簿中輸入文字時,Word 和 Excel 就會從該文字建立一份語彙基元 (Token) 的清單。SmartTagBase 類別中的預設智慧標籤辨識器就會收到這份語彙基元的清單,並完成使用者輸入的文字。如果符合下列其中一項條件,預設辨識器就會識別智慧標籤:
Terms 屬性的其中一個字串符合文件或活頁簿的其中一個語彙基元。
Expressions 屬性的其中一個規則運算式與使用者輸入的完整文字相符。
當使用者輸入字串時,Word 和 Excel 便會將含有內嵌空格的字串或是結合字母、數字和符號的字串剖析成個別的語彙基元。例如,如果使用者輸入 "sales report",Word 和 Excel 就會建立語彙基元 "sales" 和 "report"。同樣地,如果使用者輸入 "2005sales",Word 和 Excel 就會建立語彙基元 "2005" 和 "sales"。
如果您想要讓智慧標籤辨認含有內嵌空格的字串或是結合字母、數字和符號的字串,請勿將該字串加入至 Terms 屬性。請改將描述該字串的規則運算式加入至 Expressions 屬性,或是自行建立搜尋該字串的辨識器。
建立智慧標籤辨識器
若要自行建立智慧標籤辨識器,請從 SmartTagBase、Microsoft.Office.Tools.Word.SmartTag 或 Microsoft.Office.Tools.Excel.SmartTag 衍生新的類別,然後覆寫 Recognize 方法。
實作 Recognize 時,您必須搜尋文字中的智慧標籤詞彙,並在找到智慧標籤詞彙時,於 Word 或 Excel 中手動註冊智慧標籤。如需如何建立 Visual Studio Tools for Office 智慧標籤辨識器的範例,請參閱 HOW TO:在 Word 中使用自訂辨識器建立智慧標籤和 HOW TO:在 Excel 中使用自訂辨識器建立智慧標籤。
手動註冊智慧標籤的程序,會根據您所衍生的來源智慧標籤類別而定。下表列出註冊智慧標籤的各種選項。
所衍生的來源類別 |
如何註冊智慧標籤 |
---|---|
呼叫 SmartTag.PersistTag 方法。 |
|
呼叫 SmartTag.PersistTag 方法。 |
|
呼叫 Recognize 方法中 site 參數的 CommitSmartTag 方法。 site 參數是實作 ISmartTagRecognizerSite 介面的物件。當您在專案中加入 Microsoft Smart Tags 2.0 Type Library 的參考時,即可使用這個介面。如需詳細資訊,請參閱 MSDN Library 中的歡迎使用 Smart Tag SDK。 |
在屬性包中儲存和擷取資料
智慧標籤可在索引鍵與值配對的集合 (稱為屬性包) 中儲存資料。屬性包中的每個值與索引鍵都是字串。
Visual Studio Tools for Office 智慧標籤提供兩種存取屬性包的方式:
您可以處理 Microsoft.Office.Tools.Word.Action 或 Microsoft.Office.Tools.Excel.Action 類別的 Click 或 BeforeCaptionShow 事件,並使用事件引數參數的 Properties 屬性,以寫入和讀取智慧標籤的屬性包。Properties 屬性會傳回實作 ISmartTagProperties 介面的物件。當您在專案中加入 Microsoft Smart Tags 2.0 Type Library 的參考時,即可使用 ISmartTagProperties 介面。
您可以實作衍生自 SmartTagBase、Microsoft.Office.Tools.Word.SmartTag 或 Microsoft.Office.Tools.Excel.SmartTag 之類別中的 Recognize 方法。這個方法的 site 參數提供的 GetNewPropertyBag 方法會傳回 ISmartTagProperties 物件,可讓您用來寫入和讀取智慧標籤的屬性包。
如需如何寫入和讀取屬性包的範例,請參閱 HOW TO:在 Word 中使用自訂辨識器建立智慧標籤和 HOW TO:在 Excel 中使用自訂辨識器建立智慧標籤。
規則運算式和屬性包
當您指派規則運算式 (Regular Expression) 給 Visual Studio Tools for Office 智慧標籤時,預設辨識器會針對每個從規則運算式擷取的群組,在智慧標籤的屬性包中加入一對索引鍵與值。
如需示範這個行為的範例,請參閱逐步解說:使用文件層級自訂建立智慧標籤。如需規則運算式中所擷取群組的詳細資訊,請參閱群組建構和規則運算式類別。