Architettura di presentazione e input dell'utente
Quando viene compilata una finestra di progettazione, è necessario risolvere molti problemi relativi all'input dell'utente. Ad esempio, il controllo di stato attivo dell'elemento, il routing degli input di mouse e tastiera, l'aggiunta di strumenti decorativi visuali e il richiamo di comandi richiedono un meccanismo comune di gestione dell'input dell'utente. In WPF Designer per Visual Studio, la classe DesignerView fornisce la gestione di tali problemi e rappresenta l'area di progettazione primaria.
Elementi grafici
Gli strumenti decorativi sono elementi visivi disponibili solo in visualizzazione Progettazione e utilizzati per agevolare il processo di progettazione. I quadratini di ridimensionamento dei controlli visibili quando il controllo è selezionato sono un esempio di strumento decorativo visuale. La classe DesignerView contiene un insieme Adorners in cui gli strumenti decorativi visuali possono essere aggiunti e utilizzati in visualizzazione Progettazione. Per ulteriori informazioni sugli strumenti decorativi visuali, vedere Architettura degli strumenti decorativi visuali.
Routing di input
La classe DesignerView fornisce un metodo standard e centralizzato per il routing degli input dell'utente. Il processo di input è costituito dai seguenti passaggi generalizzati:
Verificarsi dell'evento di input.
Esecuzione dell'hit testing.
Individuazione di un'associazione di input.
Esecuzione dell'associazione del comando.
Nelle sezioni seguenti tali passaggi verranno esaminati in maggiore dettaglio.
Verificarsi dell'evento di input
Quando si verifica un evento di input, viene indirizzato alla classe DesignerView, dove viene eseguito l'hit testing.
Esecuzione dell'hit testing
Quando un evento di input arriva all'istanza DesignerView, viene eseguita un'analisi dell'hit test. L'hit testing consente l'analisi degli elementi visivi nel livello dello strumento decorativo e nella gerarchia dell'oggetto e restituisce le informazioni seguenti:
Strumento decorativo visuale su cui si trova il mouse
Elemento del modello al quale lo strumento decorativo visuale è associato
Elemento visivo sul quale si trova il mouse, se non si tratta di uno strumento decorativo
Elemento del modello associato all'elemento visivo
Individuazione di un'associazione di input
Dopo l'hit testing, DesignerView tenta di far corrispondere un evento di input a un'associazione di input. L'algoritmo utilizzato per trovare un'associazione di input varia secondo lo stato corrente della finestra di progettazione:
Se lo strumento correntemente attivo presenta attività attive, la ricerca di un'associazione corrispondente all'evento di input viene eseguita solo tra le associazioni di input di tale attività.
Per l'input del mouse, DesignerView esamina lo strumento decorativo visuale sottoposto a hit testing in cerca di un'attività con un'associazione di input corrispondente all'evento di input. Se è stata eseguita un'acquisizione, lo strumento decorativo visuale utilizzato è lo strumento decorativo sottoposto a hit testing al momento dell'acquisizione. Se nessuno strumento decorativo visuale è stato sottoposto a hit testing, DesignerView verificherà le associazioni di input delle attività contenute nello strumento attivo.
Per l'input da tastiera, DesignerView verificherà le associazioni di input delle attività contenute nello strumento attivo. Le associazioni di input da tastiera sugli strumenti decorativi visuali vengono ignorate.
Nota
I tasti di modifica per l'input del mouse non vengono ignorati. I tasti di modifica funzionano correttamente con gli input del mouse.
Esecuzione dell'associazione del comando
Dopo aver ottenuto un'associazione di input, viene chiamato il metodo Execute sul comando nell'associazione. Tuttavia, i comandi sono interfacce, pertanto il comportamento del metodo Execute è attivo fino all'implementazione di tale comando.
Vedere anche
Riferimenti
Concetti
Architettura degli strumenti decorativi visuali