InputPointerSource Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Representa um objeto registrado na entrada do ponteiro do relatório e fornece o cursor de ponteiro e o tratamento de eventos de entrada.
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
- Herança
- Atributos
Exemplos
O exemplo a seguir mostra como configurar um
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();
}
Este exemplo mostra como configurar a imagem do cursor de mão do sistema a ser exibida quando o cursor passa o mouse sobre um 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);
Comentários
O espaço de coordenada para os eventos de ponteiro está no mesmo espaço de coordenadas que o objeto
Ordem do evento
Caso Normal
Os eventos de ponteiro do InputPointerSource seguem uma ordem garantida em circunstâncias normais:
- PointerEntered
- PointerPressed
- PointerMoved
- PointerReleased
- PointerExited
Onde PointerMoved só será gerado se o ponteiro se mover ou os estados do botão no mouse forem alterados. Todos os eventos têm a mesma ID de ponteiro.
Captura de ponteiro perdida
PointerCaptureLost é gerado quando um ponteiro em contato é roteado para um destino de entrada diferente pelo sistema de entrada. Quando PointerCaptureLost for acionado, o que só acontecerá após PointerPressed tiver sido recebido, nenhum evento adicional será gerado para esse ponteiro. Especificamente, pointerReleased e PointerExited não serão gerados, portanto, você deve manipular PointerCaptureLost como um estado final válido para um determinado ponteiro. Aqui está um exemplo de uma sequência válida de eventos que inclui perda de captura de ponteiro:
- PointerEntered
- PointerPressed
- PointerMoved
- PointerCaptureLost
Eventos roteado
Os eventos roteado do ponteiro são gerados quando um ponteiro em contato é roteado para um destino de entrada diferente pelo sistema de entrada. Ao contrário de PointerCaptureLost, os eventos roteado fornecem a possibilidade do ponteiro em contato ser roteado de volta antes que o ponteiro seja liberado.
O seguinte mostra uma sequência válida de eventos em que o ponteiro em contato é roteado para um destino diferente, roteado de volta para o InputPointerSource original e, em seguida, liberado:
- PointerEntered
- PointerPressed
- PointerMoved
- PointerRoutedAway
- PointerRoutedTo
- PointerReleased
- PointerExited
Aqui está um exemplo de uma sequência válida de eventos em que um ponteiro em contato é roteado para um destino diferente e, em seguida, liberado no outro destino:
- PointerEntered
- PointerPressed
- PointerMoved
- PointerRoutedAway
- PointerRoutedReleased
Nota
Quando PointerRoutedReleased for acionado, nenhum evento adicional será gerado para esse ponteiro. Especificamente, pointerReleased e PointerExited não serão gerados, portanto, você deve manipular PointerRoutedReleased como um estado final válido para um determinado ponteiro.
Também é possível receber um novo ponteiro em contato que foi roteado de um destino diferente. Nesse caso, os eventos
- PointerEntered
- PointerPressed
- PointerRoutedTo
- PointerMoved
- PointerReleased
- PointerExited
Propriedades
Cursor |
Obtém ou define o cursor exibido quando um ponteiro de mouse ou caneta está sobre o destino de entrada, um Visual ou WindowId (HWND), deste InputPointerSource. |
DeviceKinds |
Obtém os tipos de dispositivo compatíveis com este InputPointerSource. |
DispatcherQueue |
Obtém o |
Métodos
GetForIsland(ContentIsland) |
Recupera um objeto |
Eventos
PointerCaptureLost |
Ocorre quando um ponteiro em contato com este InputPointerSource se move para outro destino de entrada. |
PointerEntered |
Ocorre quando um ponteiro se move para os limites deste InputPointerSource. |
PointerExited |
Ocorre quando um ponteiro sai dos limites deste InputPointerSource. |
PointerMoved |
Ocorre quando um ponteiro se move dentro dos limites deste InputPointerSource. |
PointerPressed |
Ocorre quando um botão do mouse é pressionado ou um dedo ou caneta inicia o contato com a superfície do digitalizador, enquanto dentro dos limites deste InputPointerSource. |
PointerReleased |
Ocorre quando um dispositivo de ponteiro que iniciou anteriormente uma ação pressionar é liberado (um botão do mouse é liberado ou um contato de toque ou caneta é retirado da superfície do digitalizador), enquanto dentro dos limites deste InputPointerSource. |
PointerRoutedAway |
Ocorre quando um ponteiro é redirecionado para outro InputPointerSource (possivelmente em um processo separado). |
PointerRoutedReleased |
Ocorre quando o ponteiro s que foi roteado para um InputPointerSource diferente é liberado nesse outro destino de entrada. |
PointerRoutedTo |
Ocorre quando um ponteiro é roteado para esse InputPointerSource de um destino de entrada diferente. |
PointerWheelChanged |
Ocorre quando a roda do mouse é girada (o valor delta da roda é alterado). |