Condividi tramite


Architettura di presentazione e input dell'utente

Aggiornamento: novembre 2007

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 Progettazione Windows Presentation Foundation (WPF) 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:

  1. Verificarsi dell'evento di input.

  2. Esecuzione dell'hit testing.

  3. Individuazione di un'associazione di input.

  4. Esecuzione dell'associazione del comando.

  5. 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 una scansione dell'hit test. L'hit testing consente la scansione 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

Concetti

Architettura degli strumenti decorativi visuali

Riferimenti

DesignerView

Execute

Altre risorse

Informazioni sull'estensibilità Progettazione WPF