Creare un controllo utente vuoto
Se si desidera progettare un componente riutilizzabile che possa essere aggiunto alla tavola da disegno, come avviene con i controlli di sistema, è possibile creare un controllo utente in Microsoft Expression Blend. I controlli utente possono contenere altri controlli, risorse e sequenze temporali di un'animazione allo stesso modo di un'applicazione, con l'unica differenza che l'oggetto radice è un oggetto UserControl invece di una Finestra o una Pagina.
Nelle procedure seguenti viene illustrato come creare un controllo utente contenete animazione e come crearne un'istanza in un altro documento.
Per un esempio di creazione di un controllo personalizzato nel codice, che può essere basato su un controllo di sistema esistente, vedere Esercitazione: creare un controllo personalizzato con proprietà personalizzate.
Per ulteriori esempi di controlli utente, vedere gli esempi disponibili in Expression Blend. Scegliere Schermata iniziale dal menu ?, selezionare la scheda Esempi, quindi fare clic sul nome di un esempio.
Per informazioni sui controlli utente, inclusi esempi di codice e XAML, vedere Cenni preliminari sulla modifica di controlli , nella sezione Windows Presentation Foundation
di MSDN.
Per definire il controllo utente
In Expression Blend eseguire una delle operazioni seguenti:
Per creare un controllo utente in un file DLL, fare clic su Nuovo progetto nel menu File, selezionare il tipo di progetto Libreria di controlli WPF o Libreria di controlli Silverlight , assegnarvi un nome, scegliere la lingua per il file code-behind del documento principale, quindi fare clic su OK. Utilizzare questa opzione se si desidera nascondere l'implementazione del controllo utente in caso di condivisione di quest'ultimo con un altro utente o se si desidera modificare l'aspetto del controllo utente mediante la creazione di un modello quando si disegna il controllo utente in un'altra applicazione.
Per creare un controllo utente in un file XAML in un progetto esistente, scegliere Nuovo elemento (CTRL+N) dal menu File, selezionare il modello UserControl, assegnare un nome al file e quindi fare clic su OK. In questo caso il controllo utente è più semplice da modificare, perché si trova nello stesso progetto in cui viene utilizzato, pertanto è possibile ignorare il passaggio relativo all'aggiornamento di un riferimento a una DLL.
Il controllo utente verrà aperto in Expression Blend per la modifica.
Stabilire il tipo di pannello desiderato per l'oggetto radice. Per impostazione predefinita, viene utilizzato un pannello Grid denominato LayoutRoot, che consente di ridimensionare qualsiasi animazione quando il controllo utente viene disegnato in un altro documento. Per sostituire tale pannello con un pannello Canvas o un altro controllo pannello, fare clic con il pulsante destro del mouse sull'oggetto LayoutRoot nel pannello Oggetti e sequenza temporale, scegliere Modifica tipo di layout, quindi fare clic sul nome del pannello desiderato.
Nel pannello Strumenti selezionare i controlli e gli strumenti di disegno che si desidera inserire nel controllo utente e disegnarli sulla tavola da disegno. Modificare questi elementi utilizzando le proprietà nel pannello Proprietà. I controlli utente possono contenere qualsiasi elemento che un'applicazione WPF è in grado di contenere.
Nel pannello Oggetti e sequenza temporale creare le sequenze temporali di animazione desiderate.
Per un esempio, vedere Creare un'animazione semplice.
[!NOTA]
Quando si impostano i fotogrammi chiave, tenere in considerazione la durata di tutte le animazioni nell'applicazione e il momento in cui verrà eseguita l'animazione nel controllo utente. Si consideri ad esempio un'applicazione nella quale prima viene animata una schermata iniziale e quindi viene animata l'interfaccia utente con un effetto dissolvenza in entrata. È possibile inserire ogni animazione nel proprio controllo utente, ma all'inizio della seconda animazione lasciare un tempo sufficiente per far finire l'animazione della schermata iniziale.
Suggerimento:
Se si desidera che l'animazione possa ricominciare più volte, impostare un fotogramma chiave in corrispondenza dell'indicatore del secondo 0. Se ad esempio si crea una sequenza temporale di animazione che determina lo spostamento di un oggetto da sinistra a destra ed è attivata da un doppio clic del mouse, ma non si imposta un fotogramma chiave in corrispondenza dell'indicatore del secondo 0, si implementa la continuità tra animazioni e al doppio clic successivo l'animazione non verrà più eseguita. Per informazioni sulla continuità tra animazioni, vedere la sezione "Utilizzare più sequenze temporali di animazione sovrapposte" in Animazione di oggetti.
Nel pannello Trigger configurare i trigger di proprietà o di evento in base ai quali l'applicazione risponderà alle interazioni dell'utente.
Per un esempio, vedere Aggiungere o rimuovere un trigger in un controllo WPF.
[!NOTA]
Durante la scelta dei trigger da impostare nel controllo utente tenere in considerazione tutte le proprietà e i trigger che si desidera rendere disponibili al controllo stesso. Si consideri ad esempio un'applicazione che include un pulsante e un'animazione contenuta in un controllo utente. In Expression Blend non è possibile aggiungere al controllo utente un trigger che avvia la sequenza temporale dell'animazione al clic del pulsante, a meno che anche il pulsante non faccia parte del controllo utente. È inoltre possibile associare i dati dei valori di due proprietà solo se entrambe le proprietà si trovano nello stesso controllo utente. È possibile aggirare questo problema a livello di programmazione nei file code-behind oppure creando un modello con trigger e sequenze temporali di animazione per il controllo utente dopo averlo aggiunto a un documento. Per un esempio di un controllo utente con un file code-behind, vedere Cenni preliminari sulla modifica di controlli
, nella sezione Windows Presentation Foundation
di MSDN. Per informazioni su come modificare un file code-behind da Expression Blend, vedere Modificare un file code-behind.
Al termine della creazione del controllo utente modificare le dimensioni dell'oggetto radice del documento, in modo che abbia esattamente le dimensioni necessarie. Nel pannello Oggetti e sequenza temporale selezionare la radice del documento e quindi, utilizzando lo strumento Selezione
, modificare le dimensioni della finestra del documento utilizzando gli Adorner blu sulla tavola da disegno.
Se il controllo utente dipende dai clic del mouse o dall'interazione con l'area vuota nel controllo stesso, sarà necessario impostare lo sfondo dell'oggetto radice su un pennello tinta unita, in modo che il controllo utente occupi spazio sulla tavola da disegno quando viene aggiunto a un altro documento. Nella categoria Pennelli del pannello Proprietà impostare la proprietà Background dell'oggetto radice su Pennello tinta unita
. Se si desidera che lo sfondo rimanga invisibile, impostare su 0 la sottoproprietà Alpha.
Se il controllo utente dipende da un'altezza o una larghezza specifica, impostare le proprietà MinHeight e MinWidth nella sezione Avanzate
della categoria Layout nel pannello Proprietà.
Se si desidera che un controllo utente possa essere ridimensionato quando viene disegnato in un documento, verificare che le proprietà Width e Height di tutti gli oggetti del controllo utente vengano reimpostate sul valore Auto.
Salvare i file e il progetto scegliendo Salva tutto dal menu File.
Se il progetto è una libreria di controlli, compilare il progetto per creare il file DLL scegliendo Compila progetto (CTRL+MAIUSC+B) dal menu Progetto. Il file DLL viene compilato e salvato nella cartella \bin\Debug nello stesso percorso del progetto.
Vedere anche
Attività
Creare un controllo utente da oggetti esistenti
Disegnare un controllo utente in un altro documento
Copyright © 2011 Microsoft Corporation. Tutti i diritti riservati.