Thread.CurrentUICulture Eigenschaft

Definition

Ruft die aktuelle Kultur ab, mit deren Hilfe der Ressourcen-Manager zur Laufzeit kulturabhängige Ressourcen sucht, oder legt diese fest.

public:
 property System::Globalization::CultureInfo ^ CurrentUICulture { System::Globalization::CultureInfo ^ get(); void set(System::Globalization::CultureInfo ^ value); };
public System.Globalization.CultureInfo CurrentUICulture { get; set; }
member this.CurrentUICulture : System.Globalization.CultureInfo with get, set
Public Property CurrentUICulture As CultureInfo

Eigenschaftswert

CultureInfo

Ein Objekt, das die aktuelle Kultur darstellt.

Ausnahmen

Die Eigenschaft ist auf null festgelegt.

Die Eigenschaft ist auf einen Kulturnamen festgelegt, der nicht zum Suchen einer Ressourcendatei verwendet werden kann. Ressourcendateinamen dürfen nur Buchstaben, Zahlen, Bindestriche oder Unterstriche enthalten.

Nur .NET Core und .NET 5 und mehr: Das Lesen oder Schreiben der Kultur eines Threads aus einem anderen Thread wird nicht unterstützt.

Beispiele

Im folgenden Beispiel wird bestimmt, ob die Sprache der Benutzeroberflächenkultur des aktuellen Threads Französisch ist. Wenn nicht, wird die Benutzeroberflächenkultur des aktuellen Threads auf Englisch (USA) USA.

using System;
using System.Globalization;
using System.Threading;

public class Example
{
   public static void Main()
   {
      // Change the current culture if the language is not French.
      CultureInfo current = Thread.CurrentThread.CurrentUICulture;
      if (current.TwoLetterISOLanguageName != "fr") {
         CultureInfo newCulture = CultureInfo.CreateSpecificCulture("en-US");
         Thread.CurrentThread.CurrentUICulture = newCulture;
         // Make current UI culture consistent with current culture.
         Thread.CurrentThread.CurrentCulture = newCulture;
      }
      Console.WriteLine("The current UI culture is {0} [{1}]",
                        Thread.CurrentThread.CurrentUICulture.NativeName,
                        Thread.CurrentThread.CurrentUICulture.Name);
      Console.WriteLine("The current culture is {0} [{1}]",
                        Thread.CurrentThread.CurrentUICulture.NativeName,
                        Thread.CurrentThread.CurrentUICulture.Name);
   }
}
// The example displays the following output:
//     The current UI culture is English (United States) [en-US]
//     The current culture is English (United States) [en-US]
Imports System.Globalization
Imports System.Threading

Module Example
   Public Sub Main()
      ' Change the current culture if the language is not French.
      Dim current As CultureInfo = Thread.CurrentThread.CurrentUICulture
      If current.TwoLetterISOLanguageName <> "fr" Then
         Dim newCulture As CultureInfo = CultureInfo.CreateSpecificCulture("en-US")
         Thread.CurrentThread.CurrentUICulture = newCulture
         ' Make current UI culture consistent with current culture.
         Thread.CurrentThread.CurrentCulture = newCulture
      End If
      Console.WriteLine("The current UI culture is {0} [{1}]",
                        Thread.CurrentThread.CurrentUICulture.NativeName,
                        Thread.CurrentThread.CurrentUICulture.Name)
      Console.WriteLine("The current culture is {0} [{1}]",
                        Thread.CurrentThread.CurrentUICulture.NativeName,
                        Thread.CurrentThread.CurrentUICulture.Name)
   End Sub
End Module
' The example displays output like the following:
'     The current UI culture is English (United States) [en-US]
'     The current culture is English (United States) [en-US]

Das folgende Codebeispiel zeigt die Threading-Anweisung, mit der die Benutzeroberfläche eines Windows Forms in der Kultur angezeigt werden kann, die in Systemsteuerung. Zusätzlicher Code ist erforderlich.

#using <system.dll>
#using <System.Drawing.dll>
#using <system.windows.forms.dll>

using namespace System;
using namespace System::Threading;
using namespace System::Windows::Forms;
ref class UICulture: public Form
{
public:
   UICulture()
   {
      
      // Set the user interface to display in the
      // same culture as that set in Control Panel.
      Thread::CurrentThread->CurrentUICulture = Thread::CurrentThread->CurrentCulture;
      
      // Add additional code.
   }
};


int main()
{
   Application::Run( gcnew UICulture );
}
using System;
using System.Threading;
using System.Windows.Forms;

class UICulture : Form
{
    public UICulture()
    {
        // Set the user interface to display in the
        // same culture as that set in Control Panel.
        Thread.CurrentThread.CurrentUICulture = 
            Thread.CurrentThread.CurrentCulture;

        // Add additional code.
    }

    static void Main()
    {
        Application.Run(new UICulture());
    }
}
Imports System.Threading
Imports System.Windows.Forms

Public Class UICulture : Inherits Form
    Sub New()

        ' Set the user interface to display in the
        ' same culture as that set in Control Panel.
        Thread.CurrentThread.CurrentUICulture = _
            Thread.CurrentThread.CurrentCulture

        ' Add additional code.
    End Sub

    Shared Sub Main()
        Application.Run(New UICulture())
    End Sub
End Class

Hinweise

Die Benutzeroberflächenkultur gibt die Ressourcen an, die eine Anwendung benötigt, um Benutzereingaben und -ausgaben zu unterstützen, und entspricht standardmäßig der Betriebssystemkultur. In der -Klasse erfahren Sie mehr über Kulturnamen und -bezeichner, die Unterschiede zwischen invarianten, neutralen und bestimmten Kulturen und die Auswirkungen von Kulturinformationen auf Threads CultureInfo und Anwendungsdomänen. In der CultureInfo.CurrentUICulture -Eigenschaft erfahren Sie, wie die Standardkultur der Benutzeroberfläche eines Threads bestimmt wird.

Wichtig

Die CurrentUICulture -Eigenschaft funktioniert nicht zuverlässig, wenn sie mit einem anderen Thread als dem aktuellen Thread verwendet wird. In .NET Framework ist das Lesen der -Eigenschaft zuverlässig, aber das Festlegen für einen anderen Thread als den aktuellen Thread ist dies nicht. In .NET Core wird eine ausgelöst, wenn ein Thread versucht, die Eigenschaft in einem anderen Thread zu lesen InvalidOperationException CurrentUICulture oder zu schreiben. Es wird empfohlen, die -Eigenschaft CultureInfo.CurrentUICulture zum Abrufen und Festlegen der aktuellen Kultur zu verwenden.

Der CultureInfo von dieser Eigenschaft zurückgegebene kann eine neutrale Kultur sein. Neutrale Kulturen sollten nicht mit Formatierungsmethoden wie String.Format(IFormatProvider, String, Object[]) , DateTime.ToString(String, IFormatProvider) und verwendet Convert.ToString(Char, IFormatProvider) werden. Verwenden Sie CultureInfo.CreateSpecificCulture die -Methode, um eine bestimmte Kultur zu erhalten, oder verwenden Sie die CurrentCulture -Eigenschaft.

Gilt für