Caratteri internazionali in Windows Form e controlliInternational fonts in Windows Forms and controls

Nelle applicazioni internazionali, il metodo consigliato per la selezione del carattere è utilizzare il fallback laddove possibile.In International applications, the recommended method of selecting fonts is to use font fallback wherever possible. Per fallback si intende che il sistema determina quali il carattere di script a cui appartiene.Font fallback means that the system determines what script the character belongs to.

Tramite il fallbackUsing font fallback

Per sfruttare i vantaggi di questa funzionalità, non vengono impostate le Font proprietà per il form o qualsiasi altro elemento.To take advantage of this feature, don't set the Font property for your form or any other element. L'applicazione utilizzerà automaticamente il carattere di sistema predefinito, che differisce da una lingua localizzata del sistema operativo a un altro.The application will automatically use the default system font, which differs from one localized language of the operating system to another. Quando viene eseguita l'applicazione, il sistema viene fornito automaticamente il tipo di carattere corretto per la lingua selezionata nel sistema operativo.When the application runs, the system will automatically provide the correct font for the culture selected in the operating system.

È un'eccezione alla regola di non impostare il tipo di carattere, ovvero per modificare lo stile del carattere.There's an exception to the rule of not setting the font, which is for changing the font style. Questo potrebbe essere importante per un'applicazione in cui l'utente fa clic su un pulsante per visualizzare testo in una casella di testo in grassetto.This might be important for an application in which the user clicks a button to make text in a text box appear in boldface. A tale scopo, è necessario scrivere una funzione per modificare lo stile del carattere della casella di testo da visualizzare in grassetto, in base a qualsiasi carattere del form è.To do that, you would write a function to change the text box's font style to bold, based on whatever the form's font is. È importante chiamare questa funzione in due posizioni: il pulsante Click gestore dell'evento e il FontChanged gestore dell'evento.It's important to call this function in two places: in the button's Click event handler and in the FontChanged event handler. Se la funzione viene chiamata solo nel Click gestore eventi e altre parti di codice cambia la famiglia di caratteri dell'intero form, la casella di testo non viene modificato con il resto del form.If the function is called only in the Click event handler and some other piece of code changes the font family of the entire form, the text box doesn't change with the rest of the form.

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 essere visualizzato in modo inadeguato per determinate lingue.However, when you localize your application, the bold font may display poorly for certain languages. Se si tratta di un problema, si desidera che i localizzatori di hanno la possibilità di passare il tipo di carattere da grassetto in testo normale.If this is a concern, you want the localizers to have the option of switching the font from bold to regular text. Poiché i localizzatori non sono in genere gli sviluppatori e non hanno accesso al codice sorgente, solo per i file di risorse, questa opzione deve essere impostata nei file di risorse.Since localizers are typically not developers and don't have access to source code, only to resource files, this option needs to be set in the resource files. A tale scopo, impostare il Bold proprietà true.To do this, you would set the Bold property to true. Ciò comporta l'impostazione del tipo di carattere viene scritto i file di risorse, in cui potrà essere modificata.This results in the font setting being written out to the resource files, where localizers can edit it. È quindi scrivere codice dopo il InitializeComponent per reimpostare il tipo di carattere dal qualsiasi carattere del form, ma utilizzando lo stile del carattere specificato nel file di risorse.You then write code after the InitializeComponent method to reset the font based on whatever the form's font is, but using the font style specified in the resource file.

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

Vedere ancheSee also

Globalizzazione di applicazioni Windows FormGlobalizing Windows Forms applications
Uso di tipi di carattere e testoUsing Fonts and Text