Thread.CurrentUICulture Proprietà

Definizione

Ottiene o imposta le impostazioni cultura correnti usate da Gestione risorse per cercare le risorse specifiche delle impostazioni cultura in fase di esecuzione.

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

Valore della proprietà

Oggetto che rappresenta le impostazioni cultura correnti.

Eccezioni

La proprietà è impostata su null.

La proprietà è impostata su un nome delle impostazioni cultura che non può essere usato per individuare un file di risorse. I nomi dei file di risorsa devono includere solo lettere, numeri, trattini o caratteri di sottolineatura.

Solo .NET Core e .NET 5+ : la lettura o la scrittura delle impostazioni cultura di un thread da un altro thread non è supportata.

Esempio

Nell'esempio seguente viene determinato se la lingua delle impostazioni cultura dell'interfaccia utente del thread corrente è francese. In caso contrario, imposta le impostazioni cultura dell'interfaccia utente del thread corrente su inglese (Stati Uniti).

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]

Nell'esempio di codice seguente viene illustrata l'istruzione threading che consente all'interfaccia utente di un Windows Forms di visualizzare nelle impostazioni cultura impostate in Pannello di controllo. È necessario un codice aggiuntivo.

#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

Commenti

Le impostazioni cultura dell'interfaccia utente specificano le risorse che un'applicazione deve supportare l'input utente e l'output e, per impostazione predefinita, corrisponde alle impostazioni cultura del sistema operativo. Vedere la CultureInfo classe per informazioni sui nomi delle impostazioni cultura e sugli identificatori, sulle differenze tra impostazioni cultura invarianti, neutrali e specifiche impostazioni cultura e il modo in cui le informazioni cultura influiscono sui thread e sui domini dell'applicazione. Vedere la CultureInfo.CurrentUICulture proprietà per informazioni su come viene determinata la cultura predefinita dell'interfaccia utente di un thread.

Importante

La CurrentUICulture proprietà non funziona in modo affidabile quando viene usata con qualsiasi thread diverso dal thread corrente. In .NET Framework, la lettura della proprietà è affidabile, anche se l'impostazione per un thread diverso dal thread corrente non è. In .NET Core viene generato un InvalidOperationException valore se un thread tenta di leggere o scrivere la CurrentUICulture proprietà in un thread diverso. È consigliabile usare la CultureInfo.CurrentUICulture proprietà per recuperare e impostare le impostazioni cultura correnti.

La CultureInfo proprietà restituita da questa proprietà può essere una cultura neutrale. Le impostazioni cultura neutrali non devono essere usate con metodi di formattazione come String.Format(IFormatProvider, String, Object[]), DateTime.ToString(String, IFormatProvider)e Convert.ToString(Char, IFormatProvider). Usare il CultureInfo.CreateSpecificCulture metodo per ottenere impostazioni cultura specifiche o usare la CurrentCulture proprietà .

Si applica a