Akıllı Etiketler Mimarisi
Visual Studio 2010 içindeki Visual Studio'da Office geliştirme araçları, Microsoft Office Word belgelerine ve Microsoft Office Excel çalışma kitaplarına hızlıca akıllı etiketler eklemenize olanak sağlayan esnek bir akıllı etiket sağlar. Gelişmiş senrayolar için, kendi akıllı etiket tanıyıcılarınızı oluşturabilir ve akıllı etikette saklanan veriye erişebilirsiniz.
Akıllı etiketler hakkında daha fazla bilgi için, bkz. Akıllı Etiketlere Genel Bakış.
Uygulama alanı: Bu konudaki bilgiler Excel 2007 ve Word 2007 uygulamalarının belge düzeyi projelerine ve uygulama düzeyi projelerine yöneliktir. Daha fazla bilgi için bkz. Office Uygulamalarında Kullanılabilir Özellikler ve Proje Türü.
Nesne Modeline Genel Bakış
Akıll etiket nesne modeli, akıllı etiketlerin gerçekleştirdiği eylemlerden, akıllı etiketleri ayırır. Aşağıdaki bölümlerde akıllı etiketler oluşturmak için kullandığınız ana nesneler anlatılmıştır. Belgeye akıllı etiketlerin nasıl eklendiğini gösteren kod örnekleri için, bkz. Nasıl Yapılır: Word Belgelerine Akıllı Etiketler Ekleme ve Nasıl Yapılır: Excel Çalışma Kitaplarına Akıllı Etiketler Ekleme.
Akıllı Etiketler
Kodunuzda, akıllı etiket Microsoft.Office.Tools.Word.SmartTag veya Microsoft.Office.Tools.Excel.SmartTag nesnesidir. Bu öğeler aşağıdaki özellikleri kapsar:
Terms ve Expressions. Bu özellikler akıllı etiketler için tanınabilir terimler içerir. Basit bir dizgiyi belirlemek için, Terms özelliğine bir dizgi ekleyin. Karmaşık bir dizgiyi belirlemek için, Expressions özelliğine dizgiyi tanımlayan bir normal ifade ekleyin.
Actions. Bu özellik, kullanıcı akıllı etiketi seçtiğinde gerçekleşecek eylemleri içerir.
Caption. Bu özellik akıllı etiketin etiketini belirler.
Eylemler
Kullanıcı akıllı etiketinizi seçtiğinde, kullanıcı akıllı etiketinize özel, bir veya daha fazla eylemi gerçekleştirebilir. Her eylem Microsoft.Office.Tools.Word.Action veya Microsoft.Office.Tools.Excel.Action nesnesi tarafından temsil edilir. Bu nesneler sağlarBeforeCaptionShow ve Click olaylar:
BeforeCaptionShow olayı, kullancı akıllı etiket simgesini tıkladıktan hemen sonra, fakat akıllı etiket menüzü görüntülenmeden önce oluşur. Akıllı etiketteki eylemin başlığını değiştirmek istiyorsanız, bu olayı çalışma zamanında işleyin.
Click olayı, kullancı akıllı etiket menüsündeki eylemin başlığını tıkladıktan sonra oluşur. Kullanıcı eyleme tıkladığında kodu çalıştırmak için bu olayı işleyin.
Bu olaylar için olay işleyicileri, tanınmış metne ve metnin konumuna erişim sağlayan Microsoft.Office.Tools.Excel.ActionEventArgs veya Microsoft.Office.Tools.Word.ActionEventArgs nesnesi alır.
Akıllı Etiketleri Oluşturma
Akıllı etiketi oluşturma yolunuz, projenizin .NET Framework 3.5 veya .NET Framework 4 hedeflemesine bağlıdır.
.NET Framework 3.5'i hedeflediğinizde, SmartTag ve Action, doğrudan oluşturabileceğiniz sınıflardır. Aşağıdaki kod örneğinde .NET Framework 3.5'i hedefleyen bir Word projesinde basit bir akıllı etiketin nasıl oluşturulduğu gösterilmektedir. Bu örneği kullanmak için, belge düzeyi projesindeki ThisDocument sınıfından veya uygulama düzeyi projesindeki ThisAddIn sınıfından bu kodu çalıştırın.
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 hedeflediğinizde, SmartTag ve Action doğrudan oluşturamayacağınız arayüzlerdir. Onun yerine, nesnelerin örneklerini almak için projenizdeki Globals sınıfı tarafından sağlanan CreateSmartTag ve CreateAction yöntemlerini kullanmalısınız. Globals sınıfı hakkında daha fazla bilgi için, bkz. Office Projeleri Nesnelerine Genel Erişim. Aşağıdaki kod örneğinde .NET Framework 4 hedefleyen bir Word projesinde basit bir akıllı etiketin nasıl oluşturulduğu gösterilmektedir. Bu örneği kullanmak için, belge düzeyi projesindeki ThisDocument sınıfından veya uygulama düzeyi projesindeki ThisAddIn sınıfından bu kodu çalıştırın.
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);
Daha karmaşık akıllı etiketleri gösteren kod örnekleri ve sonraki yönergeler için, bkz. Nasıl Yapılır: Word Belgelerine Akıllı Etiketler Ekleme ve Nasıl Yapılır: Excel Çalışma Kitaplarına Akıllı Etiketler Ekleme.
Akıllı Etiket Tanıyıcıları Oluşturma
Eğer varsayılan akıllı etiket tanıma davranışını özelleştirmek istiyorsanız, kendi akıllı etiket tanıyıcınızı oluşturabilirsiniz. Bunu yapma yolunuz, projenizin .NET Framework 3.5 ve .NET Framework 4 hedeflemesine bağlıdır.
Varsayılan Metin Tanıma Davranışı
Kullanıcı belgeye veya çalışma kitabına metin yazdığında, Word ve Excel metinden bir belirteç listesi oluşturur. Varsayılan akıllı etiket tanıyıcısı, bu belirteç listesini ve kullanıcı tarafından yazılan tüm metni alır. Varsayılan tanıyıcı, aşağıdaki durumlardan biriyle karşılaşıldığında, akıllı etiket tanımlar.
Terms özelliği içindeki dizgilerden bir tanesi, belge veya çalışma kitabındaki belirteçlerden bir tanesiyle tamamen eşleşir.
Expressions özelliği içindeki normal ifadelerden bir tanesi kullanıcı tarafından yazılan tüm metinle eşleşir.
Word ve Excel, katışık boşlukları veya sayıları, harfleri ve sembolleri katıştıran dizgileri içeren dizgileri, kullanıcı onları yazdığında, ayrı belirteçlere ayrıştırır. Örneğin, eğer kullanıcı "sales report" yazdığında, Word ve Excel "sales" ve "report" belirteçlerini oluşturur. Benzer olarak, eğer kullanıcı "2005sales" yazdığında, Word ve Excel "2005" ve "sales" belirteçlerini oluşturur.
Eğer akıllı etiketinizin, katışık boşlukları veya sayıları, harfleri ve sembolleri katıştıran dizgileri içeren dizgileri tanımasını istiyorsanız, Terms özelliğine dizgi eklemeyin. Onun yerine, bir dizgi tanımlayan normal ifadeyi Expressions özelliğine ekleyin veya dizgiyi arayan kendi tanıyıcınızı oluşturun.
.NET Framework 4 Hedefleyen Projelerde Akıllı Etiket Tanıyıcısı Oluşturma
Kendi akıllı etiket tanıyıcınızı oluşturmak için, Microsoft.Office.Tools.Word.ISmartTagExtension veya Microsoft.Office.Tools.Excel.ISmartTagExtension arayüzünü uygulayan bir sınıf tanımlayın. ISmartTagExtension.Recognize yönteminin uygulamasında, akıllı etiket terimleri için metni arayın ve eğer akıllı etiket bulunduysa Word ve Excel'le akıllı etiketi kaydedin. Akıllı etiketi kaydetmek için, Recognize yönteminin context parametresinin PersistTag yöntemini çağırın.
Aşağıdaki kod örneğinde .NET Framework 4 hedefleyen bir Word projesinde özel tanıyıcıyla birlikte basit bir akıllı etiket sınıfının nasıl oluşturulduğu gösterilmektedir.
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; }
}
}
Özel tanıyıcılarla birlikte daha karmaşık akıllı etiket sınıflarını gösteren kod örnekleri ve sonraki yönergeler için, bkz. Nasıl Yapılır: Word and .NET Framework 4'te Özel Tanıyıcılarla Akıllı Etiketler Oluşturma ve Nasıl Yapılır: Excel and .NET Framework 4'te Özel Tanıyıcılarla Akıllı Etiketler Oluşturma.
.NET Framework 3.5 Hedefleyen Projelerde Akıllı Etiket Tanıyıcısı Oluşturma
Kendi akıllı etiket tanıyıcınızı oluşturmak için, Microsoft.Office.Tools.Word.SmartTag veya Microsoft.Office.Tools.Excel.SmartTag'den bir sınıf türetin veya sınıftaki SmartTag.Recognize yöntemini geçersiz kılın. Yönteminizde, akıllı etiket terimleri için metni arayın ve eğer akıllı etiket bulunduysa Word ve Excel'le akıllı etiketi kaydedin. Akıllı etiketi kaydetmek için, sınıfınızın Microsoft.Office.Tools.Word.SmartTag veya Microsoft.Office.Tools.Excel.SmartTag'den türettiği PersistTag yöntemini çağırın.
Aşağıdaki kod örneğinde .NET Framework 3.5 hedefleyen bir Word projesinde özel tanıyıcıyla birlikte basit bir akıllı etiket sınıfının nasıl oluşturulduğu gösterilmektedir.
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);
}
}
}
Özel tanıyıcılarla birlikte daha karmaşık akıllı etiket sınıflarını gösteren kod örnekleri ve sonraki yönergeler için, bkz. Nasıl Yapılır: Word and .NET Framework 3.5'te Özel Tanıyıcılarla Akıllı Etiketler Oluşturma ve Nasıl Yapılır: Excel and .NET Framework 3.5'te Özel Tanıyıcılarla Akıllı Etiketler Oluşturma.
Özellik Çantasındaki Veriyi Saklama ve Alma
Akıllı etiketler, özellik çantası olarak bilinen, anahtar ve değer çiftleri koleksiyonunda verileri saklayabilir. Özellik çantasındaki her değer ve anahtar bir dizgidir.
Özellik çantasına erişmek için iki yol vardır:
Microsoft.Office.Tools.Word.Action veya Microsoft.Office.Tools.Excel.Action nesnesinin Click veya BeforeCaptionShow olaylarını işleyebilir ve akıllı etiketin özellik çantasından okuyup yazmak için olay bağımsız değişken parametresinin Properties özelliğini kullanabilirsiniz. Properties özelliği, ISmartTagProperties nesnesi döndürür. ISmartTagProperties arayüzü, projenizde Microsoft Smart Tags 2.0 Tür Kitaplığı'na başvuru eklediğinizde kullanılabilir olur.
Yukarıdaki yönergeleri takip ederek özel akıllı etiket tanıyıcısı oluşturabilirsiniz. Uygulamanızda veya Recognize yöntemini geçersiz kılmanızda, akıllı etiketin özellik çantasından okuyup yazmak için kullanabileceğiniz ISmartTagProperties nesnesini almak amacıyla site parametresinin GetNewPropertyBag yöntemini kullanın.
Özellik çantasından nasıl okunu yazıldığının örnekleri için, aşağıdaki konulara bakınız:
Nasıl Yapılır: Word and .NET Framework 4'te Özel Tanıyıcılarla Akıllı Etiketler Oluşturma
Nasıl Yapılır: Word and .NET Framework 3.5'te Özel Tanıyıcılarla Akıllı Etiketler Oluşturma
Nasıl Yapılır: Excel and .NET Framework 4'te Özel Tanıyıcılarla Akıllı Etiketler Oluşturma
Nasıl Yapılır: Excel and .NET Framework 3.5'te Özel Tanıyıcılarla Akıllı Etiketler Oluşturma
Normal İfadeler ve Özellik Çantası
Akıllı etikete normal ifade atadığınızda, varsayılan tanıyıcı,normal ifadeden yakalanan her grup için akıllı etiketin özellik çantasına bir anahtar ve değer çifti ekler.
Bu davranışı gösteren bir örnek için, bkz. İzlenecek Yol: Belge Düzeyi Özelleştirmesi Kullanarak Akıllı Etiket Oluşturma. Normal ifadelerde yakalanan gruplar hakkında daha fazla bilgi için, bkz. Grouping Constructs ve The Regular Expression Object Model.
Ayrıca bkz.
Görevler
Nasıl Yapılır: Word ve Excel'de Akıllı Etiketleri Etkinleştirme
Nasıl Yapılır: Word Belgelerine Akıllı Etiketler Ekleme
Nasıl Yapılır: Excel Çalışma Kitaplarına Akıllı Etiketler Ekleme
İzlenecek Yol: Belge Düzeyi Özelleştirmesi Kullanarak Akıllı Etiket Oluşturma
İzlenecek Yol: Uygulama Düzeyi Eklentisini Kullanarak Akıllı Etiket Oluşturma
Kavramlar
Nasıl Yapılır: Word and .NET Framework 3.5'te Özel Tanıyıcılarla Akıllı Etiketler Oluşturma
Nasıl Yapılır: Excel and .NET Framework 3.5'te Özel Tanıyıcılarla Akıllı Etiketler Oluşturma