مشاركة عبر


بنية العلامات الذكية

ينطبق على

تنطبق المعلومات الموجودة في هذا الموضوع فقط على أنواع المشاريع وإصدارات Microsoft Office التالية: لمزيد من المعلومات، راجع الميزات المتوفرة بواسطة تطبيقات Office و نوع المشروع.

نوع المشروع

  • مشروعات على مستوى المستند

  • مشروعات على مستوى التطبيق

إصدار Microsoft Office

  • Excel 2007

  • Word 2007

أدوات تطوير Office في Visual Studio 2010 توفر نموذج كائن علامة ذكية مرن يتيح لك إضافة علامات ذكية بسرعة إلى مستندات Microsoft Office Word ومصنفات Microsoft Office Excel. للسيناريوهات المتقدمة، يمكنك أيضاً إنشاء أدوات تعرُّف على العلامات الذكية الخاصة بك و الوصول إلى البيانات المخزنة في العلامات الذكية.

لمزيد من المعلومات حول العلامات الذكية، راجع نظرة عامة على العلامات الذكية.

استعراض نموذج كائن

نموذج كائن العلامة الذكية يفصل العلامات الذكية عن الإجراءات التي تقوم العلامات الذكية بتنفيذها. تصف المقاطع التالية الكائنات الرئيسية التي تستخدمها لإنشاء علامات ذكية. للحصول على أمثلة تعليمات برمجية توضح كيفية إضافة علامات ذكية إلى مستند ما، راجع كيفية القيام بما يلي: إضافة العلامات الذكية إلى مستندات Word وكيفية القيام بما يلي: إضافة علامات ذكية إلى مصنفات Excel.

Smart Tags

في تعليماتك البرمجية، العلامة الذكية هي كائن Microsoft.Office.Tools.Word.SmartTag أو Microsoft.Office.Tools.Excel.SmartTag. هذه الكائنات تتضمن الخصائص التالية:

  • Terms وExpressions تحتوي هذه الخصائص على المصطلحات التى تتعرف عليها العلامات الذكية. لتحديد سلسلة بسيطة، قم بإضافة السلسلة إلى الخاصية Terms. لتحديد سلسلة معقدة، قم بإضافة تعبير عادي يصف السلسلة إلى الخاصية Expressions.

  • Actions. لإنشاء العنصر مضيف للمصنف الذي تريد استضافة علامة ذكى، استخدم الأسلوب.

  • Caption. For المزيد معلومات حول creating مضيف عناصر, see .

الإجراءات

عندما يحدد المستخدم علاماتك الذكية، يمكن للمستخدم القيام بإجراء واحد أو أكثر خاص بالعلامة الذكية. كل إجراء يتم تمثيله بواسطة كائن Microsoft.Office.Tools.Word.Action أو Microsoft.Office.Tools.Excel.Action. This ملف هو named BeforeCaptionShowYourFormRegion.مصمم.cs أو YourFormRegion.مصمم.vb.Click

  • الحدث BeforeCaptionShow يتم رفعه فقط بعد قيام المستخدم بالنقر فوق رمز العلامة الذكية، ولكن قبل أن يتم عرض قائمة العلامة الذكية. قم بمعالجة هذا الحدث عند الرغبة في تعديل عنوان الإجراء في قائمة العلامة الذكية في وقت التشغيل.

  • الحدث Click يتم رفعه عندما يقوم المستخدم بالنقر فوق عنوان الإجراء في قائمة العلامة الذكية. قم بمعالجة هذا الحدث لتشغيل التعليمات البرمجية عند قيام المستخدم بالنقر فوق الإجراء.

معالجات هذه الأحداث تتلقى كائن Microsoft.Office.Tools.Excel.ActionEventArgs أو Microsoft.Office.Tools.Word.ActionEventArgs الذي يوفر الوصول إلى النص الذي تم التعرف عليه وموقع النص.

إنشاء علامات ذكية

تعتمد طريقة إنشاء العلامة الذكية على ما إذا كان مشروعك يستهدف NET Framework 3.5. أو .NET Framework 4.

عندما تستهدف NET Framework.، فإن الفئتين SmartTag وAction يمكنك إنشاء مثيلين لهما مباشرة. يوضح مثال التعليمات البرمجية التالي كيفية إنشاء علامة ذكية بسيطة في مشروع Word يستهدف 3.5 NET Framework. لاستخدام هذا المثال، قم بتشغيل التعليمات البرمجية من الفئة ThisDocument في مشروع على مستوى المستند أو الفئة ThisAddIn في مشروع على مستوى التطبيق.

Dim simpleSmartTag As Microsoft.Office.Tools.Word.SmartTag =
        New Microsoft.Office.Tools.Word.SmartTag(
        "www.microsoft.com/Demo#DemoSmartTag",
        "Test Smart Tag")
Dim simpleAction As Microsoft.Office.Tools.Word.Action = 
    New Microsoft.Office.Tools.Word.Action("Test Action")

simpleSmartTag.Terms.Add("blue")
simpleSmartTag.Actions = New Microsoft.Office.Tools.Word.Action() { _
    simpleAction}
Me.VstoSmartTags.Add(simpleSmartTag)
Microsoft.Office.Tools.Word.SmartTag simpleSmartTag =
    new Microsoft.Office.Tools.Word.SmartTag(
    "www.microsoft.com/Demo#DemoSmartTag",
    "Test Smart Tag");
Microsoft.Office.Tools.Word.Action simpleAction = 
    new Microsoft.Office.Tools.Word.Action("Test Action");

simpleSmartTag.Terms.Add("blue");
simpleSmartTag.Actions = new Microsoft.Office.Tools.Word.Action[] { 
    simpleAction };
this.VstoSmartTags.Add(simpleSmartTag);

عندما تستهدف .NET Framework 4، فإن SmartTag وAction هما واجهتان يتعذر إنشاء مثيلين لهما مباشرة. بدلاً من ذلك، يجب أن تستخدم الأسلوبين CreateSmartTag وCreateAction الذين توفرهما الفئة Globals في مشروعك للحصول على مثيلين لهذه الكائنات. لمزيد من المعلومات حول الفئة Globals، راجع الوصول العمومي إلى الكائنات في مشاريع Office. يوضح مثال التعليمات البرمجية التالي كيفية إنشاء علامة ذكية بسيطة في مشروع Word يستهدف .NET Framework 4. لاستخدام هذا المثال، قم بتشغيل التعليمات البرمجية من الفئة ThisDocument في مشروع على مستوى المستند أو الفئة ThisAddIn في مشروع على مستوى التطبيق.

Dim simpleSmartTag As Microsoft.Office.Tools.Word.SmartTag =
    Globals.Factory.CreateSmartTag(
        "www.microsoft.com/Demo#DemoSmartTag",
        "Test Smart Tag")
Dim simpleAction As Microsoft.Office.Tools.Word.Action =
    Globals.Factory.CreateAction("Test Action")

simpleSmartTag.Terms.Add("blue")
simpleSmartTag.Actions = New Microsoft.Office.Tools.Word.Action() { _
    simpleAction}
Me.VstoSmartTags.Add(simpleSmartTag)
Microsoft.Office.Tools.Word.SmartTag simpleSmartTag =
    Globals.Factory.CreateSmartTag(
    "www.microsoft.com/Demo#DemoSmartTag",
    "Test Smart Tag");
Microsoft.Office.Tools.Word.Action simpleAction =
    Globals.Factory.CreateAction("Test Action");

simpleSmartTag.Terms.Add("blue");
simpleSmartTag.Actions = new Microsoft.Office.Tools.Word.Action[] { 
    simpleAction };
this.VstoSmartTags.Add(simpleSmartTag);

للحصول على مزيد من الإرشادات وأمثلة تعليمات برمجية تشرح علامات ذكية معقدة بشكل أكبر، راجع كيفية القيام بما يلي: إضافة العلامات الذكية إلى مستندات Word وكيفية القيام بما يلي: إضافة علامات ذكية إلى مصنفات Excel.

إنشاء أدوات التعرف على العلامات الذكية

إذا كنت تريد تخصيص سلوك التعرف الافتراضي على العلامة الذكية، يمكنك إنشاء أداة التعرف على العلامة الذكية الخاصة بك. تعتمد طريقة القيام بذلك على ما إذا كان مشروعك يستهدف 3.5 NET Framework. و.NET Framework 4.

سلوك التعرف على النص الافتراضي

عندما يكتب مستخدم ما نصًا في مستند أو مصنف ما، يقوم Word وExcel بإنشاء قائمة علامات مميزة من النص. أداة التعرف الافتراضية على العلامات الذكية تتلقى قائمة العلامات المميزة هذه والنص الكامل الذي كتبه المستخدم. تعرّف أداة التعرف الافتراضية علامة ذكية إذا تم تحقيق أحد الشروط التالية:

  • إحدى السلاسل في الخاصية Terms تطابق تمامًا أحد العلامات المميزة في المستند أو المصنف.

  • أحد التعبيرات العادية في الخاصية Expressions تمت مطابقتها في النص الكامل الذي كتبه المستخدم.

يحلل Word وExcel السلاسل التي تحتوي على مسافات مضمنة، أو السلاسل التى تضم أحرف وأرقام ورموزا إلى علامات مميزة منفصلة عندما يقوم مستخدم ما بكتابتها. على سبيل المثال، إذا كتب المستخدم "تقرير مبيعات"، يقوم Word وExcel بإنشاء العلامات المميزة "مبيعات" و"تقرير". وبشكل مماثل، إذا كتب المستخدم "2005مبيعات"، فسيقوم Word وExcel بإنشاء العلامات المميزة "2005" و"مبيعات".

إذا كنت ترغب في جعل العلامة الذكية الخاصة بك تتعرف على سلسلة تحتوي على مسافات مضمنة أو سلسلة تضم أحرف وأرقام ورموز، فلا تقم بإضافة السلسلة إلى الخاصية Terms. بدلاً من ذلك، قم بإضافة تعبير عادي يوضح السلسلة للخاصية Expressions، أو قم بإنشاء أداة التعرف الخاصة بك التي تبحث عن السلسلة.

إنشاء أدوات التعرف على العلامات الذكية في المشاريع التي تستهدف NET Framework 4.

لإنشاء أداة التعرف على العلامات الذكية الخاصة بك، قم بتعريف فئة تنفذ الواجهة Microsoft.Office.Tools.Word.ISmartTagExtension أو Microsoft.Office.Tools.Excel.ISmartTagExtension. في تنفيذك للأسلوب ISmartTagExtension.Recognize، قم بالبحث عن نص اصطلاحات العلامة الذكية وقم بتسجيل العلامة الذكية مع Word أو Excel إذا تم العثور على مصطلح علامة ذكية. لتسجيل علامة ذكية، قم باستدعاء الأسلوب PersistTag للمعلمة context للأسلوب Recognize.

يوضح مثال التعليمات البرمجية التالي كيفية إنشاء فئة علامة ذكية بسيطة بأداة تعرف مخصصة في مشروع Word يستهدف .NET Framework 4.

Public Class SmartTagWithCustomRecognizer
    Implements Microsoft.Office.Tools.Word.ISmartTagExtension

    Private theSmartTag As Microsoft.Office.Tools.Word.SmartTag

    Public Sub New()
        theSmartTag = Globals.Factory.CreateSmartTag("www.microsoft.com/Demo#DemoSmartTag",
            "Test Smart Tag", Me)
        Dim simpleAction As Microsoft.Office.Tools.Word.Action = Globals.Factory.CreateAction("Test Action")
        theSmartTag.Actions = New Microsoft.Office.Tools.Word.Action() {simpleAction}
    End Sub

    Private Sub Recognize(ByVal text As String,
        ByVal site As Microsoft.Office.Interop.SmartTag.ISmartTagRecognizerSite,
        ByVal tokenList As Microsoft.Office.Interop.SmartTag.ISmartTagTokenList,
        ByVal context As Microsoft.Office.Tools.Word.SmartTagRecognizeContext) _
        Implements Microsoft.Office.Tools.Word.ISmartTagExtension.Recognize

        Dim index As Integer = text.IndexOf("blue")
        If index >= 0 Then
            context.PersistTag(index, 4, Nothing)
        End If
    End Sub

    Public ReadOnly Property ExtensionBase() As Object _
        Implements Microsoft.Office.Tools.Word.ISmartTagExtension.ExtensionBase
        Get
            Return theSmartTag
        End Get
    End Property
End Class
public class SmartTagWithCustomRecognizer : Microsoft.Office.Tools.Word.ISmartTagExtension
{
    private Microsoft.Office.Tools.Word.SmartTag theSmartTag;

    public SmartTagWithCustomRecognizer()
    {
        theSmartTag = Globals.Factory.CreateSmartTag("www.microsoft.com/Demo#DemoSmartTag", 
            "Test Smart Tag", this);
        Microsoft.Office.Tools.Word.Action simpleAction = Globals.Factory.CreateAction("Test Action");
        theSmartTag.Actions = new Microsoft.Office.Tools.Word.Action[] { simpleAction };
    }

    public void Recognize(string text, Microsoft.Office.Interop.SmartTag.ISmartTagRecognizerSite site, 
        Microsoft.Office.Interop.SmartTag.ISmartTagTokenList tokenList,
        Microsoft.Office.Tools.Word.SmartTagRecognizeContext context)
    {
        int index = text.IndexOf("blue");
        if (index >= 0)
        {
            context.PersistTag(index, 4, null);
        }
    }

    public object ExtensionBase
    {
        get { return theSmartTag; }
    }
}

للحصول على مزيد من الإرشادات وأمثلة التعليمات البرمجية التي تشرح فئات علامة ذكية أكثر تعقيدًا بأدوات تعرف مخصصة، راجع كيفية القيام بما يلي: إنشاء علامات ذكية بأدوات تعرف مخصصة في Word و .NET Framework 4 وكيفية القيام بما يلي: إنشاء علامات ذكية بأدوات تعرُّف مخصصة في Excel و .NET Framework 4.

إنشاء أدوات التعرف على العلامات الذكية في المشاريع التي تستهدف NET Framework 3.5.

لإنشاء أداة التعرف على العلامات الذكية الخاصة بك، قم باشتقاق فئة من Microsoft.Office.Tools.Word.SmartTag أو Microsoft.Office.Tools.Excel.SmartTag وتجاوز الأسلوب SmartTag.Recognize في الفئة. في تنفيذك للأسلوب، قم بالبحث عن نص اصطلاحات العلامة الذكية وقم بتسجيل العلامة الذكية مع Word أو Excel إذا تم العثور على مصطلح علامة ذكية. لتسجيل علامة ذكية، قم باستدعاء الأسلوب PersistTag الذي تشتقه فئتك من Microsoft.Office.Tools.Word.SmartTag أو Microsoft.Office.Tools.Excel.SmartTag.

يوضح مثال التعليمات البرمجية التالي كيفية إنشاء فئة علامة ذكية بسيطة بأداة تعرف مخصصة في مشروع Word يستهدف NET Framework 3.5.

Public Class SmartTagWithCustomRecognizer 
    Inherits Microsoft.Office.Tools.Word.SmartTag

    Public Sub New()
    MyBase.New("https://www.contoso.com/Demo#DemoSmartTag", _
        "Test Smart Tag")
        Dim simpleAction As Microsoft.Office.Tools.Word.Action = _
            New Microsoft.Office.Tools.Word.Action("TestAction")
        Me.Actions = new Microsoft.Office.Tools.Word.Action() { simpleAction }
    End Sub

    Protected Overrides Sub Recognize(ByVal text As String, _
        ByVal site As Microsoft.Office.Interop.SmartTag.ISmartTagRecognizerSite, _
        ByVal tokenList As Microsoft.Office.Interop.SmartTag.ISmartTagTokenList)

        Dim index As Integer = text.IndexOf("blue")
        If index >= 0 Then
            Me.PersistTag(index, 4, Nothing)
        End If
    End Sub
End Class
public class SmartTagWithCustomRecognizer : Microsoft.Office.Tools.Word.SmartTag
{
    public SmartTagWithCustomRecognizer() : base(
        "https://www.contoso.com/Demo#DemoSmartTag", 
        "Test Smart Tag")
    {
        Microsoft.Office.Tools.Word.Action simpleAction = 
            new Microsoft.Office.Tools.Word.Action("TestAction");
        this.Actions = new Microsoft.Office.Tools.Word.Action[] { simpleAction };
    }

    protected override void Recognize(string text, 
        Microsoft.Office.Interop.SmartTag.ISmartTagRecognizerSite site, 
        Microsoft.Office.Interop.SmartTag.ISmartTagTokenList tokenList)
    {
        int index = text.IndexOf("blue");
        if (index >= 0)
        {
            this.PersistTag(index, 4, null);
        }
    }
}

للحصول على مزيد من الإرشادات وأمثلة التعليمات البرمجية التي تشرح فئات علامة ذكية أكثر تعقيدًا بأدوات تعرف مخصصة، راجع كيفية القيام بما يلي: إنشاء علامات ذكية بأدوات تعرف مخصصة في Word و .NET Framework 3.5 وكيفية القيام بما يلي: إنشاء علامات ذكية بأدوات تعرُّف مخصصة في Excel و .NET Framework 3.5.

تخزين واسترداد البيانات في حقيبة الخصائص

العلامات الذكية يمكنها تخزين البيانات في مجموعة من أزواج "مفتاح وقيمة"، تعرف بحقيبة الخصائص. كل قيمة ومفتاح في حقيبة الخصائص عبارة عن سلسلة.

هناك طريقتان للوصول إلى حقيبة الخصائص:

  • يمكنك معالجة الحدثين Click أو BeforeCaptionShow للكائن Microsoft.Office.Tools.Word.Action أو الكائن Microsoft.Office.Tools.Excel.Action، و استخدام الخاصية Properties من معلمة وسيطة الحدث للكتابة إلى والقراءة من حقيبة خصائص العلامة الذكية. الخاصية Properties تقوم بإرجاع كائن ISmartTagProperties. الواجهة ISmartTagProperties متوفرة عند إضافة مرجع إلى مكتبة نوع Microsoft Smart Tags 2.0 إلى مشروعك.

  • يمكنك إنشاء أداة تعرف مخصصة على العلامات الذكية باتباع الإرشادات الموجودة أعلاه. في تنفيذك أو تجاوزك للأسلوب Recognize، قم باستخدام الأسلوب GetNewPropertyBag للمعلمة site للحصول على كائن ISmartTagProperties يمكنك استخدامه للكتابة إلى والقراءة من حقيبة خصائص العلامة الذكية.

للحصول على أمثلة حول كيفية الكتابة إلى و القراءة من حقيبة الخصائص، راجع المواضيع التالية:

التعبيرات العادية وحقيبة الخصائص

عندنا تقوم بتعيين تعبير عادي إلى علامة ذكية، تقوم أداة التعرف الافتراضية بإضافة زوج "مفتاح وقيمة" لكل مجموعة تم التقاطها من التعبير العادي إلى حقيبة خصائص العلامة الذكية.

للحصول على مثال يوضح هذا السلوك، راجع الإرشادات التفصيلية: إنشاء علامة ذكية باستخدام تخصيص على مستوى المستند. لمزيد من المعلومات حول المجموعات التي تم التقاطها في التعبيرات العادية راجع تجميع ثوابت و فئات تعبير عادي.

راجع أيضًا:

المهام

كيفية القيام بما يلي: تمكين العلامات الذكية في Word وExcel

كيفية القيام بما يلي: إضافة العلامات الذكية إلى مستندات Word

كيفية القيام بما يلي: إضافة علامات ذكية إلى مصنفات Excel

كيفية القيام بما يلي: إنشاء علامات ذكية بأدوات تعرف مخصصة في Word و .NET Framework 3.5

كيفية القيام بما يلي: إنشاء علامات ذكية بأدوات تعرُّف مخصصة في Excel و .NET Framework 3.5

الإرشادات التفصيلية: إنشاء علامة ذكية باستخدام تخصيص على مستوى المستند

الإرشادات التفصيلية: إنشاء علامة ذكية عن طريق استخدام وظيفة إضافية على مستوى التطبيق

موارد أخرى

نظرة عامة على العلامات الذكية