如何:本地化條形和帶狀皮膚項(xiàng)目
可以利用Localizer對(duì)象自定義皮膚菜單替代遍歷每個(gè)條形皮膚子菜單項(xiàng)和帶狀皮膚圖庫(kù)項(xiàng)容器來(lái)手動(dòng)修改項(xiàng)目,這種方法允許您一次性自定義所有現(xiàn)有的欄子菜單和帶狀畫廊中的皮膚項(xiàng)目。
1.創(chuàng)建一個(gè)類的子類,并覆蓋它的虛擬方法。
C#:
public class MyBarLocalizer : BarLocalizer { public override string GetLocalizedString(BarString id) { if(id == BarString.SkinCaptions) { string defaultSkinCaptions = base.GetLocalizedString(id); string newSkinCaptions = defaultSkinCaptions.Replace("|DevExpress Style|", "|Default Skin|"); newSkinCaptions = newSkinCaptions.Replace("|DevExpress Dark Style|", "|Default Dark Skin|"); return newSkinCaptions; } return base.GetLocalizedString(id); } }
VB.NET:
Public Class MyBarLocalizer Inherits BarLocalizer Public Overrides Function GetLocalizedString(ByVal id As BarString) As String If id Is BarString.SkinCaptions Then Dim defaultSkinCaptions As String = MyBase.GetLocalizedString(id) Dim newSkinCaptions As String = defaultSkinCaptions.Replace("|DevExpress Style|", "|Default Skin|") newSkinCaptions = newSkinCaptions.Replace("|DevExpress Dark Style|", "|Default Dark Skin|") Return newSkinCaptions End If Return MyBase.GetLocalizedString(id) End Function End Class
2.使用靜態(tài)BarLocalizerActive屬性設(shè)置一個(gè)自定義類的新實(shí)例作為當(dāng)前欄的本地化程序,在Application.Run方法調(diào)用之前在Program類中調(diào)用此方法,如下所示。
C#:
static class Program { /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main() { BonusSkins.Register(); SkinManager.EnableFormSkins(); BarLocalizer.Active = new MyBarLocalizer(); Application.Run(new Form1()); } }
VB.NET:
Friend NotInheritable Class Program Private Sub New() End Sub ''' <summary> ''' The main entry point for the application. ''' </summary> <STAThread> Shared Sub Main() BonusSkins.Register() SkinManager.EnableFormSkins() BarLocalizer.Active = New MyBarLocalizer() Application.Run(New Form1()) End Sub End Class
3.運(yùn)行應(yīng)用程序來(lái)查看結(jié)果。
注意:如果自定義本地化程序是在工具條皮膚子項(xiàng)之后分配的,或者如果Ribbon皮膚圖庫(kù)已經(jīng)初始化(例如,在Load事件上),皮膚項(xiàng)目將顯示默認(rèn)標(biāo)題。在這種情況下,調(diào)用靜態(tài)SkinHelper.InitSkinPopupMenu和SkinHelpber.InitSkinGallery 方法來(lái)再次初始化皮膚項(xiàng)目并激活本地化器。
C#:
void ucBar_Load(object sender, EventArgs e) { BarLocalizer.Active = new MyBarLocalizer(); //refresh bar sub-item links skinBarSubItem1.ClearLinks(); SkinHelper.InitSkinPopupMenu(skinBarSubItem1); //refresh Ribbon gallery links SkinHelper.InitSkinGallery(skinRibbonGalleryBarItem1); }
VB.NET:
Private Sub ucBar_Load(ByVal sender As Object, ByVal e As EventArgs) BarLocalizer.Active = New MyBarLocalizer() 'refresh bar sub-item links skinBarSubItem1.ClearLinks() SkinHelper.InitSkinPopupMenu(skinBarSubItem1) 'refresh ribbon gallery links SkinHelper.InitSkinGallery(skinRibbonGalleryBarItem1) End Sub