Partilhar via


Thread.CurrentUICulture Propriedade

Definição

Obtém ou define a cultura atual usada pelo Gerenciador de Recursos para procurar recursos específicos da cultura em tempo de execução.

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

Valor da propriedade

CultureInfo

Um objeto que representa a cultura atual.

Exceções

A propriedade é definida como null.

A propriedade é definida como um nome de cultura não pode ser usado para localizar um arquivo de recurso. Nomes de arquivos de recursos devem incluir somente letras, números, hifens ou sublinhados.

Somente .NET Core e .NET 5+: não há suporte para leitura ou escrita da cultura de um thread de outro thread.

Exemplos

O exemplo a seguir determina se o idioma da cultura da interface do usuário do thread atual é francês. Se não estiver, ele define a cultura da interface do usuário do thread atual como inglês (Estados Unidos).

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]

O exemplo de código a seguir mostra a instrução threading que permite que a interface do usuário de um Windows Forms seja exibida na cultura definida em Painel de Controle. Código adicional é necessário.

#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

Comentários

A cultura da interface do usuário especifica os recursos que um aplicativo precisa para dar suporte à entrada e à saída do usuário e, por padrão, é igual à cultura do sistema operacional. Consulte a classe para saber mais sobre nomes e identificadores de cultura, as diferenças entre culturas invariáveis, neutras e específicas e a maneira como as informações de cultura afetam threads e CultureInfo domínios de aplicativo. Consulte a propriedade para saber como a cultura de interface do usuário padrão de um CultureInfo.CurrentUICulture thread é determinada.

Importante

A propriedade não funciona de forma confiável quando CurrentUICulture usada com qualquer thread diferente do thread atual. No .NET Framework, ler a propriedade é confiável, embora defini-la para um thread diferente do thread atual não seja. No .NET Core, um será lançado se um thread tentar ler ou InvalidOperationException gravar a propriedade em um thread CurrentUICulture diferente. Recomendamos que você use a CultureInfo.CurrentUICulture propriedade para recuperar e definir a cultura atual.

O CultureInfo retornado por essa propriedade pode ser uma cultura neutra. Culturas neutras não devem ser usadas com métodos de formatação como String.Format(IFormatProvider, String, Object[]) , DateTime.ToString(String, IFormatProvider) e Convert.ToString(Char, IFormatProvider) . Use o CultureInfo.CreateSpecificCulture método para obter uma cultura específica ou use a propriedade CurrentCulture .

Aplica-se a