Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
.png)
Il controllo ComboBox rappresenta un oggetto che combina una casella di testo non modificabile e un controllo Popup. Il controllo Popup contiene un controllo ListBox che consente agli utenti di selezionare un elemento da un elenco.
Come gli altri controlli, anche ComboBox (compresi il controllo Popup, il controllo ListBox e tutti i controlli ComboBoxItem contenuti nell'oggetto ComboBox) può essere modificato per cambiare completamente aspetto rispetto a quello predefinito. Per impostazione predefinita, l'aspetto del controllo ComboBox è simile al seguente:
.png)
Proprietà di interesse del controllo ComboBox
È possibile impostare l'elemento selezionato nel controllo ComboBox impostando la proprietà SelectedIndex in Proprietà comuni nel pannello Proprietà. Il valore -1 consente di visualizzare l'oggetto ComboBox senza alcuna selezione. Il valore 0 consente di visualizzare l'oggetto ComboBox con il primo elemento selezionato.
Per aggiungere elementi a un controllo ComboBox, è possibile aggiungere manualmente oggetti ComboBoxItem oppure associare un insieme di dati all'oggetto ComboBox per far sì che gli elementi vengano visualizzati automaticamente.
Per ulteriori informazioni, vedere Associare un oggetto a dati e Creazione di dati di esempio.
Parti del modello ComboBox
Il controllo ComboBox utilizza un solo modello per definire l'aspetto della casella di riepilogo, della freccia a discesa e della finestra popup: il modello ComboBox. Ciascuna parte del modello influisce sull'aspetto e sul comportamento dell'oggetto ComboBox a cui è applicato il modello.
Suggerimento: |
|---|
Per definire lo stile degli elementi contenuti in un controllo ComboBox, è necessario modificare altri modelli. Ad esempio, quando un controllo ComboBox è associato a dei dati, il modello utilizzato per associare uno stile agli elementi contenuti è un modello di contenuto generato (un modello di dati). Quando invece il controllo ComboBox non è associato a dei dati, non dispone di un modello da applicare agli elementi contenuti. Pertanto, è necessario modificare il modello degli elementi stessi, ad esempio il modello ComboBoxItem. |
È possibile che nel modello siano disponibili altri oggetti che contribuiscono a definire l'aspetto del controllo ComboBox, tuttavia le parti elencate nella tabella seguente sono legate al comportamento tramite una relazione.
Per visualizzare le parti del modello, aprire il pannello Parti durante la modifica del modello. Nel pannello Oggetti e sequenza temporale verrà visualizzata un'icona
accanto a ciascun oggetto che svolge la funzione di parte nel pannello Parti.
.png)
.png)
Nome parte |
Tipo di oggetto |
Descrizione |
|---|---|---|
|
ContentPresenter |
Oggetto che consente di visualizzare l'elemento attualmente selezionato quando il controllo ComboBox non è espanso. Questa parte è obbligatoria. |
|
FrameworkElement |
Pannello di layout contenente la porzione superiore del controllo ComboBox. Questa parte è obbligatoria. |
|
ToggleButton |
Pulsante che consente di espandere il controllo ComboBox quando viene premuto. Per impostazione predefinita, il pulsante contiene un oggetto Path che rappresenta una freccia ma che può essere sostituito da un'immagine. |
|
Popup |
Oggetto Popup che consente di visualizzare il contenuto del controllo ComboBox. Questa parte è obbligatoria. |
Stati del controllo ComboBox
Per impostazione predefinita, il controllo ComboBox può trovarsi in uno dei tre stati seguenti nel gruppo di stati CommonStates, che può essere visualizzato nel pannello Stati durante la modifica di un modello ComboBox:
Nome stato |
Descrizione |
|---|---|
Normal |
L'aspetto del controllo ComboBox quando non vi sono interazioni con il controllo. |
MouseOver |
L'aspetto del controllo ComboBox quando l'utente sposta il puntatore su di esso. |
Disabled |
L'aspetto del controllo ComboBox quando la proprietà IsEnabled viene impostata su False. |
Il controllo ComboBox può trovarsi in uno dei seguenti tre stati del gruppo di stati FocusStates:
Nome stato |
Descrizione |
|---|---|
Unfocused |
L'aspetto del controllo ComboBox quando lo stato attivo della tastiera non è impostato sul controllo. |
Focused |
L'aspetto del controllo ComboBox quando lo stato attivo della tastiera è impostato sul controllo e il controllo non è espanso. Ad esempio, è possibile che un utente prema il tasto TAB per scorrere gli oggetti nell'applicazione fino a che lo stato attivo della tastiera non è impostato sul controllo ComboBox. |
FocusedDropDown |
L'aspetto del controllo ComboBox quando lo stato attivo della tastiera è impostato sul controllo e il controllo è espanso. |
Il controllo ComboBox può trovarsi in uno dei seguenti tre stati del gruppo di stati ValidationStates:
Nome stato |
Descrizione |
|---|---|
Valid |
L'aspetto del controllo ComboBox quando è valido. |
InvalidUnfocused |
L'aspetto del controllo ComboBox quando non è valido e lo stato attivo della tastiera non è impostato sul controllo. |
InvalidFocused |
L'aspetto del controllo ComboBox quando non è valido e lo stato attivo della tastiera è impostato sul controllo. |
Suggerimento: |
|---|
Un gruppo di stati contiene gli stati visivi inclusi nella stessa categoria logica e che non possono essere visualizzati contemporaneamente. Ad esempio, il gruppo CommonStates include gli stati relativi all'interazione dell'utente mediante un dispositivo di input quale il mouse. È possibile visualizzare solo uno stato alla volta, ma uno stato di un gruppo può essere visualizzato contemporaneamente in un altro gruppo di stati. |
Quando si seleziona uno stato, la registrazione dello stato viene attivata e qualsiasi modifica apportata verrà registrata per quello stato. Per disattivare la registrazione di stato, fare clic sul relativo pulsante
sulla tavola da disegno oppure selezionare Base nel pannello Stati. Per modificare l'aspetto del controllo quando sono attivi due stati separati, è possibile bloccare un'anteprima di uno stato in un gruppo di stati mentre si modifica uno stato in un gruppo di stati diverso.
Per convertire oggetti in un controllo ComboBox
Per modificare il modello di un controllo ComboBox, eseguire una delle operazioni seguenti:
Disegnare un controllo ComboBox
nella tavola da disegno, quindi creare una copia del modello predefinito.Per ulteriori informazioni, vedere Creare o modificare un modello.
Progettare l'aspetto del controllo ComboBox disegnando oggetti o importando elementi grafici, quindi utilizzare il comando Crea controllo.
Se si utilizza il comando Crea controllo, attenersi alla procedura seguente per verificare che si stiano creando tutti gli oggetti necessari al modello ComboBox:
Raggruppare tutti gli oggetti necessari alla definizione dell'aspetto del controllo ComboBox in un controllo Grid.
Scegliere il nuovo controllo Grid, quindi, nel menu Strumenti, fare clic su Crea controllo.
Nella finestra di dialogo che verrà visualizzata, selezionare ComboBox, rinominare il modello, quindi selezionare il percorso in cui archiviare il modello.
Per ulteriori informazioni sui percorsi, vedere Creare una risorsa.
Dopo aver selezionato OK, Microsoft Expression Blend passa alla modalità di modifica dei modelli e vengono visualizzati gli oggetti che costituiscono il controllo ComboBox. È possibile continuare a modificare il modello in questa modalità. Ad esempio, aggiungere e modificare oggetti o selezionare uno stato nel pannello Stati per modificare l'aspetto del modello in tale stato.
Se il gruppo di oggetti originali conteneva un oggetto TextBlock
, questo viene convertito in un oggetto ContentPresenter
nel modello di controllo ComboBox. In questo modo, l'oggetto ComboBox può visualizzare il testo. Se gli oggetti originali non includevano un oggetto TextBlock, viene aggiunto automaticamente un oggetto ContentPresenter al modello.Se l'oggetto ContentPresenter non è stato ancora assegnato alla parte corretta del modello, fare clic con il pulsante destro del mouse sull'oggetto ContentPresenter, selezionare Crea parte di ComboBox, quindi fare clic su ContentPresenter.
È facoltativamente possibile aggiungere o spostare altri oggetti all'interno dell'oggetto ContentPresenter, se si desidera visualizzare gli oggetti nel controllo ComboBox anche in assenza di elementi selezionati.
Se si desidera utilizzare oggetti o elementi grafici come la freccia a discesa del controllo ComboBox, eseguire le operazioni seguenti:
Raggrupparli in un pannello di layout.
Fare clic con il pulsante destro del mouse sul pannello di layout.
Scegliere Crea parte di ComboBox.
Fare clic su DropDownToggle.
In questo modo, gli oggetti verranno sostituiti da un oggetto ToggleButton e verranno utilizzati per creare lo stile e il modello che verrà applicato all'oggetto ToggleButton.
Nella finestra di dialogo Crea parte, digitare un nome per lo stile ToggleButton da creare.
Selezionare un percorso in cui si desidera archiviare lo stile, quindi fare clic su OK.
In modalità di modifica del modello per il nuovo oggetto ToggleButton, è possibile continuare ad apportare modifiche, ad esempio eliminare l'oggetto ContentPresenter (se non si desidera visualizzare del testo nell'oggetto ToggleButton), oppure è possibile selezionare gli stati nel pannello Stati per modificare l'aspetto dell'oggetto ToggleButton in tali stati.
Per tornare alla modalità di modifica del modello per l'oggetto ComboBox, fare clic su Ambito padre
nel pannello Oggetti e sequenza temporale o fare clic su DropDownToggle nella barra di navigazione nella parte superiore della tavola da disegno.
[!NOTA]
La parte DropDownToggle è facoltativa poiché è anche possibile fare clic su ContentPresenterBorder per aprire l'elenco degli elementi del controllo ComboBox e disporre in tal modo di una superficie di selezione maggiore.
La parte Popup consente di visualizzare gli elementi del controllo ComboBox. Generalmente, un oggetto ItemsPresenter consente di visualizzare un elenco di elementi e viene visualizzato all'interno di un controllo ScrollViewer per consentire la funzionalità di scorrimento. Per creare la parte Popup, eseguire una delle operazioni seguenti:
Nel pannello Oggetti e sequenza temporale, selezionare il pannello di layout principale.
Nel pannello Parti, fare doppio clic sulla parte Popup per creare un oggetto Popup alla radice del modello.
All'interno del nuovo oggetto Popup, disegnare un nuovo controllo ItemsPresenter.
Utilizzare lo strumento Selezione
per modificare la dimensione e la posizione dell'oggetto popup.
Per creare la parte ContentPresenterBorder, selezionare solamente l'oggetto ContentPresenter e l'oggetto facoltativo ToggleButton, selezionare Raggruppa dal menu Oggetto, quindi selezionare un pannello di layout. Fare clic con il pulsante destro del mouse sul nuovo oggetto del pannello di layout, scegliere Crea parte di ComboBox, quindi fare clic su ContentPresenterBorder.
È consigliabile associare alcune proprietà del pennello degli oggetti nel modello alle seguenti proprietà dell'oggetto ComboBox che utilizzerà il modello:
Background
BorderBrush
Foreground
BorderThickness
Per ulteriori informazioni, vedere Portare proprietà oggetto nel modello.
Per uscire dalla modalità di modifica del modello, fare clic su [ComboBox] sulla barra di navigazione nella parte superiore della tavola da disegno oppure fare clic su Ambito padre
nel pannello Oggetti e sequenza temporale.Per informazioni su come applicare il nuovo modello ComboBox ad altri oggetti ComboBox, vedere Applicare o rimuovere una risorsa.
Riferimenti
È possibile trovare informazioni dettagliate su proprietà ed eventi del controllo ComboBox di Microsoft Silverlight in Silverlight Control Gallery (Raccolta di controlli di Silverlight) su MSDN.
Vedere anche
Concetti
Suggerimenti di stile per controlli di Silverlight comuni
Suggerimento:
ContentPresenter
ContentPresenterBorder
DropDownToggle
Popup