.NET Framework 4'e Geçirebileceğiniz Office Projelerindeki Şerit Özelleştirmelerini Güncelleme
Eğer projenizin Şerit (Visual Designer) proje öğesi kullanılarak oluşturulmuş bir Şerit özelleştirmesi varsa ve hedef Framework'u .NET Framework 4 olarak değiştiyse proje kodunuza aşağıdaki değişiklikleri yapmalısınız.
Oluşturulmuş Şerit kodunu değiştirme.
Şerit denetimlerini çalışma zamanında örnekleyen, Şerit olaylarını işleyen veya bir Şerit bileşeninin konumunu programla ayarlayan tüm kodları değiştirme.
Oluşturulmuş Şerit Kodunu Güncelleme
Eğer projenizin hedef Framework'u .NET Framework 4 olarak değiştiyse, Şerit öğesinin oluşturulmuş kodunu aşağıdaki adımları gerçekleştirerek değiştirmelisiniz. Güncellemeniz gerek kod dosyaları programlama diline ve projeyi nasıl oluşturduğunuza bağlıdır:
Visual Basic projelerinde veya Visual Studio 2010'de oluşturduğunuz Visual C# projelerinde, Şerit arka plan kod dosyasındaki (ŞeritÖğeniz.Designer.cs veya ŞeritÖğeniz.Designer.vb) bütün adımları gerçekleştirin. Visual Basic projelerinde arka plan kod dosyasını görmek için Çözüm Gezginindeki Tüm Dosyaları Göster düğmesini tıklatın.
Visual Studio 2008 kullanarak oluşturup sonrasında Visual Studio 2010'ye yükselttiğiniz Visual C# projelerinde, Şerit kod dosyasındaki (ŞeritÖğeniz.cs veya ŞeritÖğeniz.vb) ilk iki adımı gerçekleştirin ve Şerit arka plan kod dosyasındaki geri kalan adımları gerçekleştirin.
Oluşturulmuş Şerit kodunu değiştirme
Ribbon (Şerit) sınıfının bildirimini Microsoft.Office.Tools.Ribbon.OfficeRibbon yerine Microsoft.Office.Tools.Ribbon.RibbonBase'den türemesi için değiştirin.
Ribbon sınıfının oluşturucusunu aşağıdaki gibi değiştirin. Oluşturucuya kendi kodunuzu eklediyseniz kodunuzu değiştirmeyin. Visual Basic projelerinde sadece parametresiz oluşturucuları değiştirin. Diğer oluşturucuyu yoksayın.
Aşağıdaki kod örneğinde .NET Framework 3.5'i hedefleyen bir projedeki Ribbon sınıfının varsayılan oluşturucusu gösterilmektedir.
Public Sub New() MyBase.New() InitializeComponent() End Sub
public Ribbon1() { InitializeComponent(); }
Aşağıdaki kod örneğinde .NET Framework 4'i hedefleyen bir projedeki Ribbon sınıfının varsayılan oluşturucusu gösterilmektedir.
Public Sub New() MyBase.New(Globals.Factory.GetRibbonFactory()) InitializeComponent() End Sub
public Ribbon1() : base(Globals.Factory.GetRibbonFactory()) { InitializeComponent(); }
InitializeComponent yönteminde bir Şerit denetimi oluşturan tüm kodları değiştirin ki kod onun yerine RibbonFactory nesnesinin yardımcı yöntemlerinden birini kullansın.
Not
Visual C# projelerinde, InitializeComponent yöntemini görmek için Component Designer generated code adındaki bölgeyi genişletmelisiniz.
Örneğin, dosyanız .NET Framework 3.5'i hedefleyen bir projede button1 isminde bir RibbonButton örnekleyen aşağıdaki kod satırını içeriyor.
Me.button1 = New Microsoft.Office.Tools.Ribbon.RibbonButton()
this.button1 = new Microsoft.Office.Tools.Ribbon.RibbonButton();
.NET Framework 4'i hedefleyen bir projede, bunun yerine aşağıdaki kodu kullanmalısınız.
Me.button1 = Me.Factory.CreateRibbonButton()
this.button1 = this.Factory.CreateRibbonButton();
Şerit denetimlerinin yardımcı yöntemlerinin tam listesi için bkz. Şerit Denetimlerini Örnekleme.
Visual C# projelerinde bir EventHandler<TEventArgs> temsilcisi kullanan InitializeComponent yöntemindeki tüm kod satırlarını onun yerine belirli bir Şerit temsilcisi kullanmak için değiştirin.
Örneğin, dosyanız .NET Framework 3.5'i hedefleyen bir projede RibbonButton.Click olayını işleyen aşağıdaki kod satırını içeriyor.
this.button1.Click += new System.EventHandler<Microsoft.Office.Tools.Ribbon.RibbonControlEventArgs>( this.button1_Click);
.NET Framework 4'i hedefleyen bir projede, bunun yerine aşağıdaki kodu kullanmalısınız.
this.button1.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler( this.button1_Click);
Şerit temsilcilerinin tam listesi için bkz. Şerit Olaylarını İşleme.
Visual Basic projelerinde ThisRibbonCollection sınıfını dosyanın sonuna yerleştirin. Bu sınıfının bildirimini Microsoft.Office.Tools.Ribbon.RibbonReadOnlyCollection'den türememesi için değiştirin.
Şerit Denetimlerini Örnekleme
Şerit denetimlerini dinamik olarak örnekleyen tüm kodları değiştirmelisiniz. .NET Framework 3.5'i hedefleyen projelerde Şerit denetimleri belirli durumlarda doğrudan örneklenebilen sınıflardır. .NET Framework 4'i hedefleryen projelerde bu denetimler doğrudan örneklenemeyen arabirimlerdir. Denetimler RibbonFactory nesnesinin sağladığı yöntemler kullanılarak oluşturulmalıdır.
RibbonFactory nesnesine erişmek için iki yol vardır:
Ribbon (Şerit) sınıfının Factory özelliği kullanılarak. Ribbon sınıfınızdaki kodda bu yaklaşımı kullanın.
Globals.Factory.GetRibbonFactory yöntemi kullanılarak. Ribbon sınıfınızın dışındaki kodda bu yaklaşımı kullanın. 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'i hedefleyen bir projedeki Ribbon sınıfında nasıl bir RibbonButton oluşturulacağı gösterilmektedir.
Dim button As Microsoft.Office.Tools.Ribbon.RibbonButton =
Me.Factory.CreateRibbonButton()
Microsoft.Office.Tools.Ribbon.RibbonButton button =
this.Factory.CreateRibbonButton();
Aşağıdaki tabloda, programla oluşturabileceğiniz denetimler ve .NET Framework 4'i hedefleyen projelerde bu denetimleri oluşturmak için kullanılacak yöntemler listelenmiştir.
Denetim |
.NET Framework 4 projelerinde kullanılacak RibbonFactory yöntemi |
---|---|
Şerit Olaylarını İşleme
Şerit denetimlerinin olaylarını işleyen tüm kodları değiştirmelisiniz. .NET Framework 3.5'i hedefleyen projelerde bu olaylar genel EventHandler<TEventArgs> temsilcisi tarafından işlenir. .NET Framework 4'i hedefleyen projelerde bu olaylar artık diğer temsilciler tarafından işlenmektedir.
Aşağıdaki tabloda, Şerit olayları ve .NET Framework 4'i hedefleyen projelerde bunlarla ilişkili temsilciler listelenmektedir.
Olay |
.NET Framework 4 projelerinde kullanılacak temsilci |
---|---|
Oluşturulmuş Ribbon sınıfında LoadImage olayı |
|
RibbonDropDown.SelectionChanged |
Bir Şerit Bileşeninin Konumunu Programla Ayarlama
Şerit gruplarının, sekmelerinin veya denetimlerinin konumlarını ayarlayan tüm kodları değiştirmelisiniz. .NET Framework 3.5'i hedefleyen projelerde bir grubun, sekmenin veya denetimin Position özelliğini atamak için durağan Microsoft.Office.Tools.Ribbon.RibbonPosition sınıfının AfterOfficeId ve BeforeOfficeId yöntemlerini kullanabilirsiniz. .NET Framework 4'i hedefleyen projelerde RibbonFactory nesnesinin sağladığı RibbonPosition özelliğini kullanarak bu yöntemlere ulaşmalısınız.
RibbonFactory nesnesine erişmek için iki yol vardır:
Ribbon (Şerit) sınıfının Factory özelliği kullanılarak. Ribbon sınıfınızdaki kodda bu yaklaşımı kullanın.
Globals.Factory.GetRibbonFactory yöntemi kullanılarak. Ribbon sınıfınızın dışındaki kodda bu yaklaşımı kullanın. 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 3.5'i hedefleyen bir projede Ribbon sınıfındaki bir sekmenin Position özelliğinin nasıl ayarlanacağı gösterilmektedir.
Me.tab1.Position = RibbonPosition.AfterOfficeId("TabHome")
this.tab1.Position = RibbonPosition.AfterOfficeId("TabHome");
Aşağıdaki kodda aynı görevin .NET Framework 4'i hedefleyen bir projede nasıl yapılacağı gösterilmektedir.
Me.tab1.Position = Me.Factory.RibbonPosition.AfterOfficeId("TabHome")
this.tab1.Position = this.Factory.RibbonPosition.AfterOfficeId("TabHome");