Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.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# WPF中的打印对话框区域性_C#_Wpf_Date Format_Culture_Printdialog - Fatal编程技术网

C# WPF中的打印对话框区域性

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

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

调试当前线程区域性显示从“en GB”更改为“”,并且如预期的那样,日期格式更改为US mm/dd

我一直没有找到任何关于这方面的信息,所以我希望蜂巢思维能有所帮助

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;