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.
Quando si usano più viewport, hit testingdetermina quali viewport sono interessati dall'input dell'utente prendendo la posizione dello schermo di un contatto e determinando quale rettangolo del riquadro di visualizzazione raggiunge il contatto.
Uno scenario comune nella manipolazione diretta consiste nell'inserire un riquadro di visualizzazione all'interno di un altro, noto anche come annidamento dei riquadri di visualizzazione. Se il contatto raggiunge più di un viewport, l'ordine di SetContact chiamate dal WndProc della finestra determina la relazione padre-figlio dei viewport annidati.
Regola: l'elemento figlio deve chiamare SetContactprima di chiamare l'elemento padre.
Un contatto viene visualizzato in un viewport. SetContact deve prima essere chiamato sul viewport arancione (figlio) e quindi sul viewport verde (padre) per stabilire la gerarchia corretta.
Destinazione del riquadro di visualizzazione corretto
Un contatto può essere associato a un numero qualsiasi di viewport e ogni contatto può essere assegnato a un set diverso di viewport.
Ogni viewport può essere configurato per supportare interazioni specifiche, in base alle esigenze.
In base a queste impostazioni, Manipolazione Diretta identifica quale viewport gestisce l'input. Il viewport più figlio nella gerarchia di hit testing ha la prima possibilità di gestire l'input. Tuttavia, sia il concatenamento che la promozione del genitore possono modificare il riquadro di visualizzazione che gestisce l'input.
Concatenamento
Quando la fine del contenuto viene raggiunta durante una manipolazione, manipolazione diretta applica un effetto limite per indicare che il contenuto non può andare oltre. Tuttavia, se un viewport figlio viene concatenato a un viewport padre, questo effetto viene eliminato. Al contrario, il viewport antenato più vicino nella gerarchia di hit testing che consente la manipolazione gestisce l'input. Quando la direzione della manipolazione viene invertita in modo che l'antenato torni al punto in cui è stato attivato il concatenamento, la manipolazione si slega e il controllo torna alla finestra di visualizzazione figlio.
Quando l'utente scorre il riquadro di visualizzazione figlio fino al bordo del contenuto, la manipolazione si collega al riquadro di visualizzazione padre e l'utente inizia a scorrere il contenuto padre.
Nota
Gli assi X e Y sono indipendenti l'uno dall'altro, quindi se un movimento diagonale raggiunge il limite x prima del limite y, l'intervento muove l'elemento padre nella direzione x mentre continua a spostare l'elemento figlio nella direzione y. Per abilitare o disabilitare il concatenamento, chiamare l'API SetChaining nel viewport figlio.
Binario
La specifica delle guide nella configurazione di un viewport influisce sul modo in cui l'input viene concatenato dal viewport. In particolare, l'input non può essere collegato da un viewport figlio vincolato al suo genitore nella modalità di panoramica senza guide dei binari. Per concatenare l'input quando le guide sono impostate, l'utente deve aver spostato verticalmente o orizzontalmente ed essere bloccato sulle guide.
Zoomare
Se un viewport figlio è annidato all'interno di un elemento padre ed entrambi sono configurati per lo zoom, una manipolazione dello zoom può propagarsi dal figlio al padre. Tuttavia, se la manipolazione continua, funziona solo sull'elemento padre e non può "scollegare" l'elemento figlio. Se l'utente concatena uno zoom da figlio a padre, Manipolazione Diretta sospende l'elemento figlio finché tutti i contatti associati alla manipolazione non vengono rimossi dallo schermo. A questo punto, l'elemento figlio viene rimosso dallo stato di sospensione e l'utente può scorrere il riquadro di visualizzazione figlio.
Targeting dei movimenti: Promozione padre
movimento di destinazione è il processo in base al quale manipolazione diretta raggruppa i contatti e determina il riquadro di visualizzazione che elabora l'input. promozione genitore si riferisce ai casi in cui l'input viene trasferito dal figlio al padre. Ad esempio, quando un utente inserisce due contatti e avvicina le dita all'interno di un viewport figlio configurato solo per lo scorrimento, l'input viene alzato di livello all'elemento padre in modo che si verifichi lo zoom. La promozione del genitore avviene indipendentemente dal fatto se il concatenamento sia abilitato nel viewport figlio.
A differenza del concatenamento, la promozione del nodo padre non viene invertita. Il viewport padre continua a elaborare l'input di interazione fino a quando tutti i contatti non vengono revocati (i viewport figlio interrompono l'elaborazione dell'input).