Condividi tramite


Tipi di carattere internazionali in Windows Form e controlli

Nelle applicazioni internazionali, il metodo consigliato per la selezione dei tipi di carattere consiste nell'usare il fallback dei tipi di carattere laddove possibile. Il fallback del tipo di carattere indica che il sistema determina a quale sistema di scrittura appartiene il carattere.

Uso del ripiego per il tipo di carattere

Per sfruttare questa funzionalità, non impostare la proprietà Font per il form o per qualsiasi altro elemento. L'applicazione userà automaticamente il tipo di carattere di sistema predefinito, che differisce da una lingua localizzata del sistema operativo a un'altra. Quando l'applicazione viene eseguita, il sistema fornirà automaticamente il tipo di carattere corretto per le impostazioni di cultura selezionate nel sistema operativo.

Esiste un'eccezione alla regola di non impostazione del tipo di carattere, ovvero per la modifica dello stile del carattere. Questo potrebbe essere importante per un'applicazione in cui l'utente fa clic su un pulsante per rendere il testo in una casella di testo visualizzato in grassetto. A tale scopo, è necessario scrivere una funzione per modificare lo stile del carattere della casella di testo in grassetto, in base al tipo di carattere del modulo. È importante chiamare questa funzione in due posizioni: nel gestore eventi Click del pulsante e nel gestore eventi FontChanged. Se la funzione viene chiamata solo nel gestore eventi Click e un altro frammento di codice modifica la famiglia di caratteri dell'intero modulo, la casella di testo non cambia con il resto del modulo.

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();
   }
}

Tuttavia, quando si localizza l'applicazione, il tipo di carattere grassetto potrebbe non essere visualizzato correttamente per determinate lingue. Se si tratta di un problema, si vuole che i localizzatori abbiano la possibilità di passare dal grassetto al testo normale. Poiché i localizzatori in genere non sono sviluppatori e non hanno accesso al codice sorgente, solo ai file di risorse, questa opzione deve essere impostata nei file di risorse. A tale scopo, impostare la proprietà Bold su true. Ciò comporta la scrittura dell'impostazione del tipo di carattere nei file di risorse, in cui i localizzatori possono modificarla. Si scrive quindi il codice dopo il metodo InitializeComponent per reimpostare il tipo di carattere in base al tipo di carattere del modulo, ma usando lo stile del tipo di carattere specificato nel file di risorse.

TextBox1.Font = New System.Drawing.Font(Me.Font, TextBox1.Font.Style)
textBox1.Font = new System.Drawing.Font(this.Font, textBox1.Font.Style);

Vedere anche