Thread.CurrentUICulture Vlastnost

Definice

Získá nebo nastaví aktuální jazykovou verzi používanou Resource Manager k vyhledání prostředků specifických pro jazykovou verzi za běhu.

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

Hodnota vlastnosti

Objekt, který představuje aktuální jazykovou verzi.

Výjimky

Vlastnost je nastavená na null.

Vlastnost je nastavena na název jazykové verze, který nelze použít k vyhledání souboru prostředku. Názvy souborů prostředků musí obsahovat pouze písmena, číslice, spojovníky nebo podtržítka.

Pouze .NET Core a .NET 5+: Čtení nebo zápis jazykové verze vlákna z jiného vlákna se nepodporuje.

Příklady

Následující příklad určuje, zda jazyk jazykové verze uživatelského rozhraní aktuálního vlákna je francouzština. Pokud tomu tak není, nastaví jazykovou verzi uživatelského rozhraní aktuálního vlákna na angličtinu (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]
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]

Následující příklad kódu ukazuje příkaz threading, který umožňuje zobrazení uživatelského rozhraní model Windows Forms v jazykové verzi, která je nastavena v Ovládací panely. Je potřeba další kód.

#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());
    }
}
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

Poznámky

Jazyková verze uživatelského rozhraní určuje prostředky, které aplikace potřebuje k podpoře vstupu a výstupu uživatele, a ve výchozím nastavení je stejná jako jazyková verze operačního systému. CultureInfo Projděte si třídu, kde se dozvíte o názvech a identifikátorech jazykových verzích, rozdílech mezi invariantní, neutrální a specifickou jazykovou verzí a o způsobu, jakým informace o jazykové verzi ovlivňují vlákna a domény aplikací. Podívejte se na CultureInfo.CurrentUICulture vlastnost a zjistěte, jak se určuje výchozí jazyková verze uživatelského rozhraní vlákna.

Důležité

Vlastnost CurrentUICulture nefunguje spolehlivě při použití s jiným vláknem než s aktuálním vláknem. V rozhraní .NET Framework je čtení vlastnosti spolehlivé, i když nastavení pro jiné vlákno než aktuální vlákno není. V .NET Core se vyvolá, InvalidOperationException pokud se vlákno pokusí přečíst nebo zapsat CurrentUICulture vlastnost v jiném vlákně. Doporučujeme použít CultureInfo.CurrentUICulture vlastnost k načtení a nastavení aktuální jazykové verze.

Vrácená CultureInfo touto vlastností může být neutrální jazyková verze. Neutrální jazykové verze by se neměly používat s metodami formátování, jako String.Format(IFormatProvider, String, Object[])jsou , DateTime.ToString(String, IFormatProvider)a Convert.ToString(Char, IFormatProvider). Použijte metodu CultureInfo.CreateSpecificCulture k získání konkrétní jazykové verze nebo použijte CurrentCulture vlastnost.

Platí pro