【问题标题】:Having localized pagination in DevExpress printpreview在 DevExpress printpreview 中进行本地化分页
【发布时间】:2013-12-13 22:29:16
【问题描述】:

我正在尝试在我的打印预览中的所有页面的页脚中进行本地化分页。我这样设置分页:

var PageOfPages = "[Page # of Pages #]";
//On n'a pas vraiment le choix de faire ça pour que ça fonctionne dans les différentes langues... :
//http://www.devexpress.com/Support/Center/p/CQ48170.aspx
switch (CultureManager.GetInstance().TwoLetterISOCultureName)
{
  case "fr":
        PageOfPages = "[Page # de pages #]";
        break;
  case "es":
        PageOfPages = "[Página # de Páginas #]";
        break;
}
var PageHeaderArea = new PageHeaderArea();
PageHeaderArea.Content.AddRange(new[] { "", "", "[Image 0]" });
var HeaderFooter = (PageHeaderFooter)LinkBase.PageHeaderFooter;
   HeaderFooter = new PageHeaderFooter(
   PageHeaderArea,
   new PageFooterArea(new[] { dateString, "", PageOfPages }, SystemFonts.DefaultFont, BrickAlignment.Far)
);

它支持英语,但不能支持法语或西班牙语。也尝试使用 XtraPrinting Resources dll。

【问题讨论】:

    标签: c# printing localization pagination devexpress


    【解决方案1】:

    您应该能够使用设计器本身及其本地化过程来处理此问题,无需直接在代码中进行更改。

    要在设计器中访问本地化,请在设计模式下打开报表,然后其中一个属性是语言。更改将创建包含本地化资源字符串的新 .resx 文件。这应该会根据用户“CurrentUICulture”System.Threading.Thread.CurrentThread.CurrentUICulture 自动导入正确的资源文件。这一切都在我的系统上自动运行。

    这是假设您已在设计器中定义了所有结构。这不适用于代码生成的控件。

    对于那些...您真的想手动处理...

    在 BeforePrint 事件中,您应该能够检查 CurrentUICulture 是否与您要查找的内容相匹配,并相应地更改各种控件的文本。

    如果您不想在报告运行时执行此操作,而是在声明本身期间执行此操作,那么您的代码应该可以正常工作。我会检查您是否在 switch 语句中引用了正确的值。您应该从正在运行的线程中寻找CurrentUICulture。我不确定CultureManager.GetInstance() 是否真的会为您提供正确的值。

    更新:添加代码示例

    将此值用于开关:

    switch( System.Threading.Thread.CurrentThread.CurrentUICulture.TwoLetterISOCultureName )
    {
        ...
    }
    

    【讨论】:

    • 其实我的开关不是问题。如果我用法语设置我的应用程序。在打印预览中,它将显示[Page # de pages #] 而不是Page 1 de 7。这在英语中非常有效,但在法语或西班牙语中。它在底部显示 [Page # de pages #][Página # de Páginas #] 事物。
    【解决方案2】:

    随便用

    using DevExpress.XtraPrinting.Localization
    PreviewLocalizer.GetString(PreviewStringId.PageInfo_PageNumberOfTotal)
    

    这应该为您的设置语言提供正确的格式字符串。

    --莱因哈特

    【讨论】:

      猜你喜欢
      • 2020-02-20
      • 1970-01-01
      • 2020-11-28
      • 2014-09-14
      • 2010-10-14
      • 2021-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多