InputPointerSource Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Représente un objet inscrit pour signaler l’entrée du pointeur et fournir le curseur de pointeur et la gestion des événements d’entrée.
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
- Héritage
- Attributs
Exemples
L’exemple suivant montre comment configurer un SwapChainPanel avec CreateCoreIndependentInputSource et recevoir un stylet à faible latence et une entrée tactile sur un thread d’arrière-plan via un 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();
}
Cet exemple montre comment configurer l’image de curseur de main système à afficher lorsque le curseur pointe sur un 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);
Remarques
L’espace de coordonnées des événements de pointeur se trouve dans le même espace de coordonnées que l’objet SwapChainPanel .
Ordre des événements
Cas normal
Les événements de pointeur d’InputPointerSource suivent un ordre garanti dans des circonstances normales :
- Pointeur entré
- PointerPressed
- DéplacementDuPointeur
- RelâchementDuPointeur
- PointerExited
Où PointerMoved est déclenché uniquement si le pointeur se déplace ou si les états du bouton sur la souris changent. Tous les événements ont le même ID de pointeur.
Capture de pointeur perdue
PointerCaptureLost est déclenché lorsqu’un pointeur in-contact est routé vers une autre cible d’entrée par le système d’entrée. Lorsque PointerCaptureLost est déclenché, ce qui se produit uniquement après la réception de PointerPressed , aucun événement supplémentaire n’est déclenché pour ce pointeur. Plus précisément, PointerReleased et PointerExited ne seront pas déclenchés. Vous devez donc gérer PointerCaptureLost comme état de fin valide pour un pointeur donné. Voici un exemple d’une séquence d’événements valide qui inclut la perte de capture de pointeur :
- Pointeur entré
- PointerPressed
- DéplacementDuPointeur
- PerteDeCaptureDuPointeur
Événements routés
Les événements routés de pointeur sont déclenchés lorsqu’un pointeur in-contact est routé vers une autre cible d’entrée par le système d’entrée. Contrairement à PointerCaptureLost, les événements routés fournissent la possibilité que le pointeur en contact soit routé avant la libération du pointeur.
L’exemple suivant montre une séquence valide d’événements où le pointeur in-contact est acheminé vers une autre cible, routée vers l’entrée InputPointerSource d’origine, puis publiée :
- Pointeur entré
- PointerPressed
- DéplacementDuPointeur
- PointerRoutedAway
- PointerRoutedTo
- RelâchementDuPointeur
- PointerExited
Voici un exemple d’une séquence d’événements valide où un pointeur in-contact est acheminé vers une autre cible, puis libéré sur l’autre cible :
- Pointeur entré
- PointerPressed
- DéplacementDuPointeur
- PointerRoutedAway
- PointerRoutedReleased
Note
Lorsque PointerRoutedReleased est déclenché, aucun événement supplémentaire n’est déclenché pour ce pointeur. Plus précisément, PointerReleased et PointerExited ne seront pas déclenchés. Vous devez donc gérer PointerRoutedReleased comme état de fin valide pour un pointeur donné.
Il est également possible de recevoir un tout nouveau pointeur en contact routé à partir d’une autre cible. Dans ce cas, les événements PointerEntered et PointerPressed sont garantis pour précéder un PointerRoutedTo si le pointeur n’a pas encore été vu par l’inputPointerSource actuel. Voici un exemple de cette séquence d’événements :
- Pointeur entré
- PointerPressed
- PointerRoutedTo
- DéplacementDuPointeur
- RelâchementDuPointeur
- PointerExited
Propriétés
| Nom | Description |
|---|---|
| ActivationBehavior |
Représente un objet inscrit pour signaler l’entrée du pointeur et fournir le curseur de pointeur et la gestion des événements d’entrée. |
| Cursor |
Obtient ou définit le curseur affiché lorsqu’un pointeur de souris ou de stylet se trouve sur la cible d’entrée, un objet Visuel ou WindowId (HWND) de ce InputPointerSource. |
| DeviceKinds |
Obtient les types d’appareils pris en charge par cette InputPointerSource. |
| DispatcherQueue |
Obtient le DispatcherQueue pour InputObject. (Hérité de InputObject) |
Méthodes
| Nom | Description |
|---|---|
| GetForIsland(ContentIsland) |
Récupère un objet InputPointerSource pour le ContentIsland spécifié. |
| GetForVisual(Visual) |
Représente un objet inscrit pour signaler l’entrée du pointeur et fournir le curseur de pointeur et la gestion des événements d’entrée. |
| GetForWindowId(WindowId) |
Représente un objet inscrit pour signaler l’entrée du pointeur et fournir le curseur de pointeur et la gestion des événements d’entrée. |
| RemoveForVisual(Visual) |
Représente un objet inscrit pour signaler l’entrée du pointeur et fournir le curseur de pointeur et la gestion des événements d’entrée. |
| TrySetDeviceKinds(InputPointerSourceDeviceKinds) |
Représente un objet inscrit pour signaler l’entrée du pointeur et fournir le curseur de pointeur et la gestion des événements d’entrée. |
Événements
| Nom | Description |
|---|---|
| DirectManipulationHitTest |
Représente un objet inscrit pour signaler l’entrée du pointeur et fournir le curseur de pointeur et la gestion des événements d’entrée. |
| PointerCaptureLost |
Se produit lorsqu’un pointeur en contact avec ce InputPointerSource se déplace vers une autre cible d’entrée. |
| PointerEntered |
Se produit lorsqu’un pointeur se déplace dans les limites de cette InputPointerSource. |
| PointerExited |
Se produit lorsqu’un pointeur se déplace hors des limites de cette InputPointerSource. |
| PointerMoved |
Se produit lorsqu’un pointeur se déplace dans les limites de cette InputPointerSource. |
| PointerPressed |
Se produit lorsqu’un bouton de la souris est enfoncé ou qu’un doigt ou un stylet initie le contact avec la surface du numériseur, tandis que dans les limites de cette InputPointerSource. |
| PointerReleased |
Se produit lorsqu’un appareil pointeur qui a lancé précédemment une action De presse est libéré (un bouton de la souris est libéré, ou un contact tactile ou stylet est levé à partir de l’aire du numériseur), tandis que dans les limites de cette InputPointerSource. |
| PointerRoutedAway |
Se produit lorsqu’un pointeur est redirigé vers un autre InputPointerSource (éventuellement dans un processus distinct). |
| PointerRoutedReleased |
Se produit lorsque le pointeur s’est acheminé vers un autre InputPointerSource est libéré sur cette autre cible d’entrée. |
| PointerRoutedTo |
Se produit lorsqu’un pointeur est routé vers cette InputPointerSource à partir d’une autre cible d’entrée. |
| PointerWheelChanged |
Se produit lorsque la roulette de la souris est pivotée (la valeur delta de la roue change). |
| TouchHitTesting |
Représente un objet inscrit pour signaler l’entrée du pointeur et fournir le curseur de pointeur et la gestion des événements d’entrée. |