文檔半島外圍網上直營>>DevExpress WinForm中文手冊>>如何:本地化條形和帶狀皮膚項目
                如何:本地化條形和帶狀皮膚項目
可以利用Localizer對象自定義皮膚菜單替代遍歷每個條形皮膚子菜單項和帶狀皮膚圖庫項容器來手動修改項目,這種方法允許您一次性自定義所有現有的欄子菜單和帶狀畫廊中的皮膚項目。
1.創建一個類的子類,并覆蓋它的虛擬方法。
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.使用靜態BarLocalizerActive屬性設置一個自定義類的新實例作為當前欄的本地化程序,在Application.Run方法調用之前在Program類中調用此方法,如下所示。
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.運行應用程序來查看結果。
注意:如果自定義本地化程序是在工具條皮膚子項之后分配的,或者如果Ribbon皮膚圖庫已經初始化(例如,在Load事件上),皮膚項目將顯示默認標題。在這種情況下,調用靜態SkinHelper.InitSkinPopupMenu和SkinHelpber.InitSkinGallery 方法來再次初始化皮膚項目并激活本地化器。
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

 QQ交談
QQ交談 在線咨詢
在線咨詢 
                 
                
 渝公網安備
            50010702500608號
渝公網安備
            50010702500608號
             
            
 客服熱線
客服熱線