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
.NET Desktop feedback