繁体   English   中英

PrintDialog在WPF中改变文化

[英]PrintDialog altering culture in WPF

当前,我们是WPF内部的一种使用标准打印对话框的打印方法。 打印后,我们的安全性令牌开始出现问题。 调试显示,区域性为en-GB,日期格式为dd / MM / yyyy。 在dialog.PrintDocument行之后,从DateTime.Now返回的日期格式现在更改为mm / dd / yyyy?

调试当前线程区域性将显示从'en-GB'到''的变化,并且正如预期的那样,日期格式更改为US mm / dd。

我一直没有找到关于此的任何信息,所以我希望Hive的想法可以为您提供帮助!

void PrintPdf_Click(object sender, RoutedEventArgs e)
{ 
    CultureInfo currentCulture = Thread.CurrentThread.CurrentCulture; 
    PrintDialog dialog = new PrintDialog(); 

    if (dialog.ShowDialog() != true) 
        return; 
    Console.WriteLine(DateTime.Now); 
    dialog.PrintDocument(_pdfDocumentView.PrintDocument.DocumentPaginator, "Print"); 
    Console.WriteLine(DateTime.Now); 
    Thread.CurrentThread.CurrentCulture = currentCulture; 
    Console.WriteLine(DateTime.Now); 
}

问题归结于PrintDocument的Syncfusion属性访问器。 它在内部所做的第一件事就是将当前的文化变为不变! 之后再将其重新设置是唯一的解决方案,因为此时无法启动新线程。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM