Fontes internacionais nos Windows Forms e controles
Em aplicativos internacionais, o método recomendado de seleção de fontes é usar substituição de fonte sempre que possível. Substituição de fonte significa que o sistema determina a qual script o caractere pertence.
Usando substituição de fonte
Para aproveitar esse recurso, não defina a propriedade Font para seu formulário ou qualquer outro elemento. O aplicativo usará automaticamente a fonte do sistema padrão, que difere de um idioma localizado do sistema operacional para outro. Quando o aplicativo for executado, o sistema fornecerá automaticamente a fonte correta para a cultura selecionada no sistema operacional.
Há uma exceção à regra de não definir a fonte, que é para alterar o estilo da fonte. Isso pode ser importante para um aplicativo no qual o usuário clica em um botão para fazer o texto em uma caixa de texto aparecer em negrito. Para fazer isso, você escreveria uma função para alterar o estilo de fonte da caixa de texto para negrito, com base em qualquer fonte do formulário. É importante chamar essa função em dois lugares: no manipulador de eventos Click do botão e no manipulador de eventos FontChanged. Se a função for chamada apenas no manipulador de eventos Click e alguma outra parte do código alterar a família de fontes de todo o formulário, a caixa de texto não será alterada com o restante do formulário.
Private Sub MakeBold()
' Change the TextBox to a bold version of the form font
TextBox1.Font = New Font(Me.Font, FontStyle.Bold)
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
' Clicking this button makes the TextBox bold
MakeBold()
End Sub
Private Sub Form1_FontChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.FontChanged
' If the TextBox is already bold and the form's font changes,
' change the TextBox to a bold version of the new form font
If (TextBox1.Font.Style = FontStyle.Bold) Then
MakeBold()
End If
End Sub
private void button1_Click(object sender, System.EventArgs e)
{
// Clicking this button makes the TextBox bold
MakeBold();
}
private void MakeBold()
{
// Change the TextBox to a bold version of the form's font
textBox1.Font = new Font(this.Font, FontStyle.Bold);
}
private void Form1_FontChanged(object sender, System.EventArgs e)
{
// If the TextBox is already bold and the form's font changes,
// change the TextBox to a bold version of the new form font
if (textBox1.Font.Style == FontStyle.Bold)
{
MakeBold();
}
}
No entanto, quando você localiza seu aplicativo, a fonte em negrito pode ser exibida mal para determinados idiomas. Se isso for uma preocupação, você deseja que os localizadores tenham a opção de alternar a fonte de negrito para texto regular. Como os localizadores normalmente não são desenvolvedores e não têm acesso ao código-fonte, somente aos arquivos de recurso, essa opção precisa ser definida nos arquivos de recurso. Para fazer isso, você definiria a propriedade Bold como true
. Isso resulta na configuração da fonte sendo gravada nos arquivos de recurso, em que os localizadores podem editá-la. Em seguida, você escreve código após o método InitializeComponent
para redefinir a fonte com base em qualquer fonte do formulário, mas usando o estilo de fonte especificado no arquivo de recurso.
TextBox1.Font = New System.Drawing.Font(Me.Font, TextBox1.Font.Style)
textBox1.Font = new System.Drawing.Font(this.Font, textBox1.Font.Style);
Consulte também
.NET Desktop feedback