Thread.CurrentUICulture Propriedade
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Obtém ou define a cultura atual usada pelo Resource Manager para consultar 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 de Propriedade
Um objeto que representa a cultura atual.
Exceções
A propriedade está definida como null.
A propriedade é definida para um nome de cultura que não pode ser usado para localizar um ficheiro de recurso. Os nomes de ficheiros de recursos devem incluir apenas letras, números, hífens ou sublinhados.
.NET Core e .NET 5+ apenas: Não é suportado ler ou escrever a cultura de um thread a partir de outro thread.
Exemplos
O exemplo seguinte determina se a língua da cultura da interface do tópico atual é o francês. Se não estiver, define a cultura da interface do tópico atual para 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]
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]
O exemplo de código seguinte mostra a instrução threading que permite que a interface de utilizador de um Windows Forms seja apresentada na cultura definida no Painel de Controlo. É necessário código adicional.
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
Observações
A cultura da interface especifica os recursos que uma aplicação precisa para suportar entrada e saída do utilizador, e por defeito é a mesma que a cultura do sistema operativo. Consulte a CultureInfo aula para aprender sobre nomes e identificadores de culturas, as diferenças entre culturas invariantes, neutras e específicas, e a forma como a informação cultural afeta os threads e domínios de aplicação. Consulte a CultureInfo.CurrentUICulture propriedade para saber como é determinada a cultura de interface padrão de um thread.
Importante
A CurrentUICulture propriedade não funciona de forma fiável quando usada com qualquer thread que não seja a thread atual. No .NET Framework, ler a propriedade é fiável, embora defini-la para um thread diferente do atual não seja. No .NET Core, um InvalidOperationException é lançado se um thread tentar ler ou escrever a propriedade CurrentUICulture num thread diferente. Recomendamos que utilize a CultureInfo.CurrentUICulture propriedade para recuperar e definir a cultura atual.
O CultureInfo retorno desta 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 usar a CurrentCulture propriedade.