Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 24 di 59
  • livello principiante
Indice lezioni

Button, CheckBox e variazioni sul tema

I controlli più utilizzati per la creazione di form
I controlli più utilizzati per la creazione di form
Link copiato negli appunti

I Content Controls sono tutti quei controlli che hanno la caratteristica di poter contenere e visualizzare un singolo elemento. Essi derivano dalla classe System.Windows.Controls.ContentControl dell'assembly System.Windows.dll ed espongono la proprietà Content che accetta un singolo elemento di tipo object. Questa caratterista rende questi controlli molto flessibili: possiamo utilizzare qualsiasi oggetto come elemento figlio.

Alcuni dei più classici controlli per l'interfaccia utente appartengono a questa categoria e sono descritti nella seguente tabella:

Controllo Descrizione
Button Il classico bottone che l'utente può cliccare. Quando cliccato solleva l'evento Click
RepeatButton È un Button che se mantenuto premuto lancia in ripetizione l'evento Click
HyperlinkButton Espone le funzionalità di un normale hyperlink, permette quindi di navigare, a seguito di click, ad un determinato URL
ToggleButton È un Button che mantiene lo stato una volta premuto. L'evento click sarà sollevato solo una volta
CheckBox È un controllo che espone tre stati, Checked, Unchecked e Undefined
RadioButton Permette la selezione ad esclusione
ToolTip Testo informativo visualizzato quando ci posizioniamo con il mouse sul un controllo
ScrollViewer Permette di scorrere il contenuto in direzione verticale e/o orizzontale tramite le classiche ScrollBars

Abbiamo omesso i controlli ListBoxItem e ComboBoxItem, poiché dipendono fortemente da un altro gruppo di controlli, gli Items Controls, che incontriamo più avanti nella guida.

Vediamo in pratica cosa significa innestare un elemento in un Content Control, proviamo ad inserire una TextBox all'interno di un Button.

<Button Height="100">
  <TextBox Text="TextBox" Width="100" />
</Button>

L'aspetto interessante è che sia il Button, sia la TextBox, mantengono intatte le proprie caratteristiche, quindi possiamo cliccare il primo oppure modificare il testo del secondo.

Figura 31. Elementi annidati
Elementi annidati

L'esempio non è di alcun vantaggio pratico, ma mostra il grado di flessibilità disponibile.

Questa "magia" avviene grazie al sistema di rendering di Silverlight. Banalmente possiamo dire che utilizza tre meccanismi diversi di visualizzazione del contenuto:

  1. Se l'oggetto figlio è un UIElement anche esso sarà renderizzato
  2. Per un qualsiasi tipo di contenuto (non UIElement) sarà invocato il metodo ToString
  3. Il caso più avanzato riguarda i tipi di oggetti che prevedono la definizione di Template, per la precisione un DataTemplate. Affronteremo questo caso un una lezione apposita

Vediamo intanto con un esempio alcuni dei controlli descritti:

<Canvas ...>

  <Button          Canvas.Top="10"  Canvas.Left="20"  Height="50" Width="100" Content="Button" />
  <RepeatButton    Canvas.Top="80"  Canvas.Left="20"  Height="50" Width="100" Content="RepeatButton" />
  <ToggleButton    Canvas.Top="150" Canvas.Left="20"  Height="50" Width="100" IsChecked="true" Content="ToggleButton" />
  <HyperlinkButton Canvas.Top="10"  Canvas.Left="150" Content="HyperlinkButton" />

  <StackPanel Canvas.Top="50" Canvas.Left="150" >
    <CheckBox IsThreeState="True" Content="Checked"       IsChecked="true" />
    <CheckBox IsThreeState="True" Content="Unchecked"     IsChecked="false" />
    <CheckBox IsThreeState="True" Content="Indeterminate" IsChecked="{x:Null}" />
  </StackPanel>
  
  <StackPanel Canvas.Top="150" Canvas.Left="150" >
    <RadioButton Content="RadioButton1" />
    <RadioButton Content="RadioButton2" IsChecked="true"  />
    <RadioButton Content="RadioButton3" />
  </StackPanel>
  
</Canvas>
Figura 32. Esempi di utilizzo dei controlli
Esempi di utilizzo dei controlli

Ti consigliamo anche