Thread.CurrentUICulture Propriété

Définition

Obtient ou définit la culture actuelle utilisée par le Gestionnaire de ressources pour rechercher des ressources spécifiques à la culture au moment de l'exécution.

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

Valeur de propriété

CultureInfo

Objet qui représente la culture actuelle.

Exceptions

La propriété est définie sur null.

La propriété a la valeur d’un nom de culture qui ne peut pas être utilisé pour localiser un fichier de ressources. Les noms de fichiers des ressources doivent inclure uniquement des lettres, des chiffres, des traits d’union ou des traits de soulignement.

.NET Core et .NET 5 + uniquement : la lecture ou l’écriture de la culture d’un thread à partir d’un autre thread n’est pas prise en charge.

Exemples

L’exemple suivant détermine si le langage de la culture d’interface utilisateur du thread actuel est français. Si ce n’est pas le cas, elle définit la culture d’interface utilisateur du thread actuel sur l’anglais (États-Unis).

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]

l’exemple de code suivant montre l’instruction de thread qui permet à l’interface utilisateur d’un Windows Forms de s’afficher dans la culture définie dans le panneau de configuration. Du code supplémentaire est nécessaire.

#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

Remarques

La culture d’interface utilisateur spécifie les ressources dont une application a besoin pour prendre en charge les entrées et sorties utilisateur, et est par défaut la même que la culture du système d’exploitation. Consultez la CultureInfo classe pour en savoir plus sur les noms et les identificateurs de culture, sur les différences entre les cultures invariantes, neutres et spécifiques, ainsi que sur la façon dont les informations de culture affectent les threads et les domaines d’application. Consultez la CultureInfo.CurrentUICulture propriété pour savoir comment la culture d’interface utilisateur par défaut d’un thread est déterminée.

Important

La CurrentUICulture propriété ne fonctionne pas de façon fiable lorsqu’elle est utilisée avec un thread autre que le thread actuel. dans .NET Framework, la lecture de la propriété est fiable, même si sa définition pour un thread autre que le thread actuel n’est pas. Sur .NET Core, une InvalidOperationException exception est levée si un thread tente de lire ou d’écrire la CurrentUICulture propriété sur un thread différent. Nous vous recommandons d’utiliser la CultureInfo.CurrentUICulture propriété pour récupérer et définir la culture actuelle.

La CultureInfo retournée par cette propriété peut être une culture neutre. Les cultures neutres ne doivent pas être utilisées avec des méthodes de mise en forme telles que String.Format(IFormatProvider, String, Object[]) , DateTime.ToString(String, IFormatProvider) et Convert.ToString(Char, IFormatProvider) . Utilisez la CultureInfo.CreateSpecificCulture méthode pour obtenir une culture spécifique, ou utilisez la CurrentCulture propriété.

S’applique à