Controlli
Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Controlli

 

Pubblicato: giugno 2016

Windows Presentation Foundation (WPF) viene fornito con molti dei più comuni componenti dell'interfaccia utente utilizzati in quasi ogni applicazione Windows, ad esempio Button, Label, TextBox, Menu e ListBox. Questi oggetti sono denominati controlli. Sebbene WPF SDK continui a utilizzare il termine "controllo" per indicare in modo generale qualsiasi classe che rappresenta un oggetto visibile in un'applicazione, è importante notare che una classe non deve ereditare dalla classe Control per essere visibilmente presente. Le classi che ereditano dalla classe Control contengono un oggetto ControlTemplate che consente all'utente di un controllo di modificarne radicalmente l'aspetto senza dover creare una nuova sottoclasse. In questo argomento viene illustrato il tipico utilizzo dei controlli in WPF, sia quelli che ereditano dalla classe Control sia gli altri.

È possibile aggiungere un controllo a un'applicazione utilizzando Extensible Application Markup Language (XAML) o il codice. Nell'esempio riportato di seguito viene illustrato come creare una semplice applicazione in cui venga chiesto all'utente di immettere il nome e il cognome. In questo esempio vengono creati sei controlli, due etichette, due caselle di testo e due pulsanti, in XAML. Tutti i controlli possono essere creati in modo analogo.

Nell'esempio riportato di seguito viene creata la stessa applicazione nel codice. Per ragioni di brevità, la creazione del controllo Grid, grid1 è stata esclusa dall'esempio. grid1 presenta le stesse definizioni di righe e colonne illustrate nel precedente esempio XAML.

Modificare l'aspetto di un controllo per adattare l'aspetto dell'applicazione è un'operazione alquanto comune. È possibile modificare l'aspetto di un controllo eseguendo una delle operazioni indicate di seguito, a seconda del risultato che si desidera ottenere:

  • Modificare il valore di una proprietà del controllo.

  • Creare un oggetto Style per il controllo.

  • Creare un nuovo oggetto ControlTemplate per il controllo.

Esistono proprietà che consentono di modificare l'aspetto del controllo, ad esempio la proprietà Background di un controllo Button. È possibile impostare le proprietà del valore in XAML e nel codice. Nell'esempio riportato di seguito vengono impostate le proprietà Background, FontSize e FontWeight di un controllo Button in XAML.

Nell'esempio riportato di seguito vengono impostate le stesse proprietà nel codice.

In WPF è possibile specificare l'aspetto dei controlli a livello globale, anziché impostare proprietà in ogni istanza nell'applicazione tramite la creazione di un oggetto Style. Nell'esempio seguente viene creato un oggetto Style, che viene applicato a ogni controllo Button dell'applicazione. Le definizioni Style vengono in genere specificate in XAML in un oggetto ResourceDictionary, ad esempio la proprietà Resources dell'oggetto FrameworkElement.

È anche possibile applicare uno stile solo a determinati controlli di un tipo specifico assegnando una chiave allo stile e specificando quella chiave nella proprietà Style del controllo. Per ulteriori informazioni sugli stili, vedere Applicazione di stili e modelli.

Style consente di impostare proprietà su più controlli alla volta, anche se a volte è necessario personalizzare l'aspetto di un Control in modo più esteso rispetto a quanto è possibile ottenere creando un oggetto Style. Le classi che ereditano dalla classe Control dispongono di un oggetto ControlTemplate che definisce la struttura e l'aspetto di un Control. La proprietà Template di un Control è pubblica, pertanto è possibile assegnare a un Control un ControlTemplate diverso da quello predefinito. È spesso possibile specificare un nuovo ControlTemplate per un Control anziché ereditare da un controllo per personalizzare l'aspetto di un Control.

Si consideri un controllo molto comune, Button. Il comportamento primario di un controllo Button consiste nel consentire a un'applicazione di intraprendere una qualche azione quando l'utente fa clic su di esso. Per impostazione predefinita, Button viene visualizzato in WPF come rettangolo in rilievo. Quando si sviluppa un'applicazione, è possibile sfruttare il comportamento di un controllo Button, tramite gestione dell'evento Click del pulsante, ma è possibile modificare l'aspetto del pulsante oltre a quanto è possibile fare modificando le proprietà del pulsante. In questo caso, è possibile creare un nuovo ControlTemplate.

Nell'esempio riportato di seguito viene creato un ControlTemplate per un controllo Button. Tramite ControlTemplate viene creato un controllo Button con angoli arrotondati e uno sfondo sfumato. ControlTemplate contiene un Border la cui proprietà Background è LinearGradientBrush con due oggetti GradientStop. Il primo oggetto GradientStop utilizza l'associazione dati per associare la proprietà Color di GradientStop al colore dello sfondo del pulsante. Quando si imposta la proprietà Background del controllo Button, il colore di quel valore verrà utilizzato come primo GradientStop. Per ulteriori informazioni sull'associazione dati, vedere Cenni preliminari sull'associazione dati. Nell'esempio viene inoltre creato un oggetto Trigger che modifica l'aspetto del controllo Button quando IsPressed è true.

System_CAPS_noteNota

Affinché l'esempio funzioni correttamente, la proprietà Background del controllo Button deve essere impostata su SolidColorBrush.

È possibile sottoscrivere l'evento di un controllo utilizzando XAML o il codice, ma è possibile gestire un evento solo nel codice. Nell'esempio riportato di seguito viene illustrato come sottoscrivere l'evento Click di un controllo Button.

Nell'esempio riportato di seguito viene gestito l'evento Click di un controllo Button.

La maggior parte delle classi che eredita dalla classe Control può contenere contenuto completo. Ad esempio, un oggetto Label può contenere qualsiasi oggetto, ad esempio una stringa, un controllo Image o un controllo Panel. Le classi riportate di seguito supportano contenuto completo e costituiscono le classi base per la maggior parte dei controlli in WPF.

Per ulteriori informazioni su queste classi di base, vedere Modello di contenuto WPF.

Mostra:
© 2016 Microsoft