Thread.CurrentUICulture Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
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 .