InputPointerSource Classe

Definizione

Rappresenta un oggetto registrato per segnalare l'input del puntatore e fornire il cursore del puntatore e la gestione degli eventi di input.

public ref class InputPointerSource sealed : InputObject
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.Foundation.WindowsAppSDKContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class InputPointerSource final : InputObject
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.Foundation.WindowsAppSDKContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class InputPointerSource : InputObject
Public NotInheritable Class InputPointerSource
Inherits InputObject
Ereditarietà
Object Platform::Object IInspectable InputObject InputPointerSource
Attributi

Esempio

L'esempio seguente illustra come configurare un oggetto SwapChainPanel con CreateCoreIndependentInputSource e ricevere input tocco e penna a bassa latenza su un thread in background tramite DispatcherQueueController.

void SetupBackgroundPenInput(SwapChainPanel swapChainPanel)
{
    m_dispatcherQueueController = DispatcherQueueController::CreateOnDedicatedThread();

    m_dispatcherQueueController.DispatcherQueue().TryEnqueue([this] {

        InputPointerSourceDeviceKinds deviceKind = (InputPointerSourceDeviceKinds)(
            Microsoft::UI::Input::InputPointerSourceDeviceKinds::Touch |
            Microsoft::UI::Input::InputPointerSourceDeviceKinds::Pen);
        m_coreInput = swapChainPanel().CreateCoreIndependentInputSource(deviceKind);

        m_coreInput.PointerMoved({ this, &DirectXPage::SwapChainPanel_OnPointerMoved });
        });
}


void DirectXPage::SwapChainPanel_OnPointerPressed(InputPointerSource const& sender, Microsoft::UI::Input::PointerEventArgs const& e)
{
    // When the pointer is pressed begin tracking the pointer movement.
    m_main->StartTracking();
}

Questo esempio mostra come configurare l'immagine del cursore della mano di sistema da visualizzare quando il cursore passa il puntatore su un oggetto SwapChainPanel:

InputPointerSourceDeviceKinds deviceKind = (InputPointerSourceDeviceKinds)(
    Microsoft::UI::Input::InputPointerSourceDeviceKinds::Touch |
    Microsoft::UI::Input::InputPointerSourceDeviceKinds::Mouse |
    Microsoft::UI::Input::InputPointerSourceDeviceKinds::Pen);
m_coreInput = swapChainPanel().CreateCoreIndependentInputSource(deviceKind);

m_coreInput.InputCursor = InputSystemCursor.Create(InputSystemCursorShape.Hand);

Commenti

Lo spazio delle coordinate per gli eventi del puntatore si trova nello stesso spazio di coordinate dell'oggetto SwapChainPanel .

Ordine eventi

Normale maiuscole/minuscole

Gli eventi puntatore di InputPointerSource seguono un ordine garantito in circostanze normali:

  1. Puntatore immesso
  2. PressioneDelPuntatore
  3. Puntatore spostato
  4. Rilascio del Puntatore
  5. PuntatoreUscito

Dove Puntatore Spostato verrà generato solo se il puntatore si sposta o lo stato del pulsante sulla modifica del mouse. Tutti gli eventi hanno lo stesso ID puntatore.

Acquisizione puntatore persa

PointerCaptureLost viene generato quando un puntatore a contatto viene instradato a una destinazione di input diversa dal sistema di input. Quando viene generato PointerCaptureLost, che si verificherà solo dopo la ricezione di PointerPressed , non verranno generati altri eventi per tale puntatore. In particolare, PointerReleased e PointerExited non verranno generati, pertanto è consigliabile gestire PointerCaptureLost come stato finale valido per un determinato puntatore. Di seguito è riportato un esempio di una sequenza valida di eventi che include la perdita dell'acquisizione del puntatore:

  1. Puntatore immesso
  2. PressioneDelPuntatore
  3. Puntatore spostato
  4. PointerCaptureLost

Eventi indirizzati

Gli eventi indirizzati del puntatore vengono generati quando un puntatore in contatto viene instradato a una destinazione di input diversa dal sistema di input. A differenza di PointerCaptureLost, gli eventi indirizzati offrono la possibilità che il puntatore in contatto venga instradato di nuovo prima del rilascio del puntatore.

Di seguito viene illustrata una sequenza valida di eventi in cui il puntatore in contatto viene indirizzato a una destinazione diversa, indirizzata nuovamente all'oggetto InputPointerSource originale e quindi rilasciata:

  1. Puntatore immesso
  2. PressioneDelPuntatore
  3. Puntatore spostato
  4. PointerRoutedAway
  5. PointerRoutedTo
  6. Rilascio del Puntatore
  7. PuntatoreUscito

Di seguito è riportato un esempio di una sequenza valida di eventi in cui un puntatore a contatto viene instradato a una destinazione diversa e quindi rilasciato sull'altra destinazione:

  1. Puntatore immesso
  2. PressioneDelPuntatore
  3. Puntatore spostato
  4. PointerRoutedAway
  5. PointerRoutedReleased

Note

Quando viene generato PointerRoutedReleased, non verranno generati eventi aggiuntivi per tale puntatore. In particolare, PointerReleased e PointerExited non verranno generati, pertanto è consigliabile gestire PointerRoutedReleased come stato finale valido per un puntatore specifico.

È anche possibile ricevere un nuovo puntatore a contatto che è stato instradato da una destinazione diversa. In questo caso, gli eventi PointerEntered e PointerPressed hanno la garanzia di precedere un PointerRoutedTo se il puntatore non è stato ancora visualizzato dall'oggetto InputPointerSource corrente. Di seguito è riportato un esempio di questa sequenza di eventi:

  1. Puntatore immesso
  2. PressioneDelPuntatore
  3. PointerRoutedTo
  4. Puntatore spostato
  5. Rilascio del Puntatore
  6. PuntatoreUscito

Proprietà

Nome Descrizione
ActivationBehavior

Rappresenta un oggetto registrato per segnalare l'input del puntatore e fornire il cursore del puntatore e la gestione degli eventi di input.

Cursor

Ottiene o imposta il cursore visualizzato quando un puntatore del mouse o della penna si trova sulla destinazione di input, un oggetto Visual o WindowId (HWND), di questo InputPointerSource.

DeviceKinds

Ottiene i tipi di dispositivo supportati da inputPointerSource.

DispatcherQueue

Ottiene dispatcherQueue per InputObject.

(Ereditato da InputObject)

Metodi

Nome Descrizione
GetForIsland(ContentIsland)

Recupera un oggetto InputPointerSource per l'oggetto ContentIsland specificato.

GetForVisual(Visual)

Rappresenta un oggetto registrato per segnalare l'input del puntatore e fornire il cursore del puntatore e la gestione degli eventi di input.

GetForWindowId(WindowId)

Rappresenta un oggetto registrato per segnalare l'input del puntatore e fornire il cursore del puntatore e la gestione degli eventi di input.

RemoveForVisual(Visual)

Rappresenta un oggetto registrato per segnalare l'input del puntatore e fornire il cursore del puntatore e la gestione degli eventi di input.

TrySetDeviceKinds(InputPointerSourceDeviceKinds)

Rappresenta un oggetto registrato per segnalare l'input del puntatore e fornire il cursore del puntatore e la gestione degli eventi di input.

Eventi

Nome Descrizione
DirectManipulationHitTest

Rappresenta un oggetto registrato per segnalare l'input del puntatore e fornire il cursore del puntatore e la gestione degli eventi di input.

PointerCaptureLost

Si verifica quando un puntatore in contatto con l'oggetto InputPointerSource passa a un'altra destinazione di input.

PointerEntered

Si verifica quando un puntatore si sposta nei limiti di inputPointerSource.

PointerExited

Si verifica quando un puntatore esce dai limiti di inputPointerSource.

PointerMoved

Si verifica quando un puntatore si sposta all'interno dei limiti di InputPointerSource.

PointerPressed

Si verifica quando viene premuto un pulsante del mouse o un dito o una penna avviano il contatto con la superficie del digitalizzatore, all'interno dei limiti di inputPointerSource.

PointerReleased

Si verifica quando viene rilasciato un dispositivo puntatore che in precedenza ha avviato un'azione Di pressione (viene rilasciato un pulsante del mouse o un contatto tocco o penna dalla superficie del digitalizzatore), mentre all'interno dei limiti di questo InputPointerSource.

PointerRoutedAway

Si verifica quando un puntatore viene reindirizzato a un altro InputPointerSource (possibilmente in un processo separato).

PointerRoutedReleased

Si verifica quando il puntatore indirizzato a un inputPointerSource diverso viene rilasciato in quell'altra destinazione di input.

PointerRoutedTo

Si verifica quando un puntatore viene indirizzato a questo InputPointerSource da una destinazione di input diversa.

PointerWheelChanged

Si verifica quando la rotellina del mouse viene ruotata (il valore delta della rotellina cambia).

TouchHitTesting

Rappresenta un oggetto registrato per segnalare l'input del puntatore e fornire il cursore del puntatore e la gestione degli eventi di input.

Si applica a

Vedi anche