Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在DevExpress打印预览中具有本地化分页_C#_Printing_Localization_Pagination_Devexpress - Fatal编程技术网

C# 在DevExpress打印预览中具有本地化分页

C# 在DevExpress打印预览中具有本地化分页,c#,printing,localization,pagination,devexpress,C#,Printing,Localization,Pagination,Devexpress,我正在尝试在打印预览中所有页面的页脚中进行本地化分页。我将分页设置为: 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 (Culture

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

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资源dll

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

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

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

对于那些…你真的想手动处理它

在BeforePrint事件中,您应该能够根据所查找的内容检查
CurrentUICulture
,并相应地更改各种控件的文本

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

更新:添加代码示例

将此值用于开关:

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

using DevExpress.XtraPrinting.Localization
PreviewLocalizer.GetString(PreviewStringId.PageInfo_PageNumberOfTotal)
这将为您的设置语言提供正确的格式字符串


--莱因哈德

事实上,我的开关不是问题所在。如果我用法语申请的话。在打印预览中,它将显示
[Page#de pages#]
,而不是
第1页de第7页
。这在英语中非常有效,但在法语或西班牙语中效果很好。它在底部显示
[Page#de pages#]
[Página#de Páginas#]
内容。