Thread.CurrentUICulture Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft die aktuelle Kultur ab, die vom Ressourcen-Manager zum Nachschlagen kulturspezifischer Ressourcen zur Laufzeit verwendet wird, 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
Ein Objekt, das die aktuelle Kultur darstellt.
Ausnahmen
Die Eigenschaft ist auf null.
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+: Das Lesen oder Schreiben der Kultur eines Threads aus einem anderen Thread wird nicht unterstützt.
Beispiele
Im folgenden Beispiel wird ermittelt, ob die Sprache der UI-Kultur des aktuellen Threads Französisch ist. Wenn dies nicht der Grund ist, wird die UI-Kultur des aktuellen Threads auf Englisch (USA) festgelegt.
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]
open System.Globalization
open System.Threading
// Change the current culture if the language is not French.
let current = Thread.CurrentThread.CurrentUICulture
if current.TwoLetterISOLanguageName <> "fr" then
let newCulture = CultureInfo.CreateSpecificCulture "en-US"
Thread.CurrentThread.CurrentUICulture <- newCulture
// Make current UI culture consistent with current culture.
Thread.CurrentThread.CurrentCulture <- newCulture
printfn
$"The current UI culture is {Thread.CurrentThread.CurrentUICulture.NativeName} [{Thread.CurrentThread.CurrentUICulture.Name}]"
printfn
$"The current culture is {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 der Systemsteuerung festgelegt ist. Zusätzlicher Code ist erforderlich.
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());
}
}
open System.Threading
open System.Windows.Forms
type UICulture() =
inherit Form()
do
// 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.
new UICulture() |> Application.Run
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 ist standardmäßig mit der Betriebssystemkultur identisch. In der CultureInfo Klasse erfahren Sie mehr über Kulturnamen und Bezeichner, die Unterschiede zwischen invarianten, neutralen und bestimmten Kulturen sowie die Art und Weise, wie Kulturinformationen sich auf Threads und Anwendungsdomänen auswirken. Sehen Sie sich die Eigenschaft an, um zu erfahren, wie die CultureInfo.CurrentUICulture Standard-UI-Kultur eines Threads bestimmt wird.
Von Bedeutung
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, obwohl das Festlegen für einen anderen Thread als den aktuellen Thread nicht der Fall ist. Bei .NET Core wird ein InvalidOperationException Fehler ausgelöst, wenn ein Thread versucht, die CurrentUICulture Eigenschaft in einem anderen Thread zu lesen oder zu schreiben. Es wird empfohlen, die CultureInfo.CurrentUICulture Eigenschaft zum Abrufen und Festlegen der aktuellen Kultur zu verwenden.
Die CultureInfo von dieser Eigenschaft zurückgegebene Eigenschaft kann eine neutrale Kultur sein. Neutrale Kulturen sollten nicht mit Formatierungsmethoden wie String.Format(IFormatProvider, String, Object[]), DateTime.ToString(String, IFormatProvider), und Convert.ToString(Char, IFormatProvider). Verwenden Sie die CultureInfo.CreateSpecificCulture Methode, um eine bestimmte Kultur abzurufen oder die CurrentCulture Eigenschaft zu verwenden.