C# WPF中的打印对话框区域性
我们目前是WPF内部使用标准打印对话框的打印方法。打印后,我们的安全令牌开始出现问题。调试显示区域性为en GB,日期格式为dd/MM/yyyy。在dialog.PrintDocument行之后,日期格式从DateTime返回。现在更改为mm/dd/yyyy 调试当前线程区域性显示从“en GB”更改为“”,并且如预期的那样,日期格式更改为US mm/dd 我一直没有找到任何关于这方面的信息,所以我希望蜂巢思维能有所帮助C# WPF中的打印对话框区域性,c#,wpf,date-format,culture,printdialog,C#,Wpf,Date Format,Culture,Printdialog,我们目前是WPF内部使用标准打印对话框的打印方法。打印后,我们的安全令牌开始出现问题。调试显示区域性为en GB,日期格式为dd/MM/yyyy。在dialog.PrintDocument行之后,日期格式从DateTime返回。现在更改为mm/dd/yyyy 调试当前线程区域性显示从“en GB”更改为“”,并且如预期的那样,日期格式更改为US mm/dd 我一直没有找到任何关于这方面的信息,所以我希望蜂巢思维能有所帮助 void PrintPdf_Click(object sender, Ro
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属性访问器。它在里面做的第一件事就是将当前区域性更改为不变量!由于此时无法启动新线程,因此将其设置回原来的状态是唯一的解决方案。我怀疑这只是Visual Studio显示问题,而不是DataTime对象中的实际更改。您是否使用了正确的PrintDialog?System.Windows.Controls中的那个?还有一个System.Windows.Forms.PrintDialog。@jdweng它肯定不仅仅是显示,否则它永远不会成为问题。@Jeffer。使用System.Windows.Controls;