Questo testo fa parte del capitolo 27 del libro “Visual Basic 2010 spiegato a mia nonna” che sarà pubblicato fra poche settimane. Trovate l’esempio di codice tra gli esempi liberamente scaricabili al seguente indirizzo:https://deghetto.wordpress.com/2011/02/05/libro-visual-basic-2010-spiegato-a-mia-nonna/
Il controllo Calendar permette di visualizzare un calendario mensile, annuale oppure decennale, in base all’impostazione della proprietà DisplayMode, rispettivamente a Month, Year e Decade.
La definizione XAML predefinita (in modalità Month) è la seguente:
1: <Calendar
2: Height="170"
3: HorizontalAlignment="Left"
4: Margin="10,10,0,0"
5: Name="Calendar1"
6: VerticalAlignment="Top"
7: Width="180" />
Il seguente esempio chiarirà alcuni aspetti sull’uso del controllo Calendar. Create una nuova applicazione WPF e poi:
1. aggiungete un controllo Calendar e uno di tipo TextBox;
2. modificate la proprietà SelectionMode del controllo Calendar e impostatelo a SingleRange.
In alternativa, modificate il codice XAML come segue:
<Window x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="264" Width="295">
<Grid Height="225" Width="226">
<Calendar Height="170"
HorizontalAlignment="Left"
Margin="10,10,0,0"
Name="Calendar1"
VerticalAlignment="Top"
Width="208"
SelectionMode="SingleRange" />
<TextBlock Height="23"
HorizontalAlignment="Left"
Margin="10,190,0,0"
Name="TextBlock1"
Text="TextBlock"
VerticalAlignment="Top"
Width="208"
TextAlignment="Center" />
</Grid>
</Window>
Infine, sostituite il codice Visual Basic con il seguente:
Class MainWindow
Private Sub Calendar1_SelectedDatesChanged(
ByVal sender As System.Object,
ByVal e As System.Windows.Controls.SelectionChangedEventArgs) _
Handles Calendar1.SelectedDatesChanged
Me.TextBlock1.Text =
"Selezionato " &
Me.Calendar1.SelectedDates.First & "-" &
Me.Calendar1.SelectedDates.Last
End Sub
End Class
Il risultato è visibile nella seguente figura. Notate che con la modifica della proprietà SelectionMode del controllo Calendar è possibile selezionare un intervallo di date anziché una data sola.