Compartilhar via


RadialControllerIndependentInputSource Classe

Definição

Permite que um aplicativo manipule a entrada do controlador radial no thread em segundo plano.

public ref class RadialControllerIndependentInputSource sealed
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 262144)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
class RadialControllerIndependentInputSource final
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 262144)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
public sealed class RadialControllerIndependentInputSource
Public NotInheritable Class RadialControllerIndependentInputSource
Herança
Object Platform::Object IInspectable RadialControllerIndependentInputSource
Atributos

Requisitos do Windows

Família de dispositivos
Windows 10 Creators Update (introduzida na 10.0.15063.0)
API contract
Windows.Foundation.UniversalApiContract (introduzida na v4.0)

Exemplos

Aqui, criamos um DispatcherQueue em um thread em segundo plano dedicado e inicializamos um objeto RadialControllerInpdependentInputSource, que é criado no thread em segundo plano.

public void CreateCoreIndependentInputSourceSample() 
{ 
    // Create a new thread, initialize DispatcherQueueController, 
    // and run a DispatcherQueue event loop on it. 
    _queueController =  
        DispatcherQueueController.CreateOnDedicatedThread(); 
    _queue = _queueController.DispatcherQueue;  

    // This is the first TryEnqueue() after creating the DispatcherQueue 
    // callback is guaranteed to be invoked first despite priority on the 
    // newly created thread. 
    bool isQueued = _queue.TryEnqueue( () => 
        {
            // The RadialControllerIndependentInputSource will raise events 
            // on the thread that created it.  
            radialInput = 
                RadialControllerIndependentInputSource.CreateForView(view); 
            radialInput.Controller.ButtonClicked += OnButtonClicked; 
            radialInput.Controller.ButtonHeld += OnButtonHeld; 
            radialInput.Controller.ButtonPressed += OnButtonPressed;  

            // Add RadialControllerMenuItems for this controller. 
            AddMenuItems(radialInput.Controller) 
        });         

    if (!isQueued) 
    { 
        // throw exception as this callback is enqueued. 
    } 

    // Enqueuing future tasks to this thread can be done using the DispatcherQueue 
    // property in RadialControllerIndependentInputSource.
    bool isTaskQueued = radialInput.DispatcherQueue.TryEnqueue( () => 
        { 
            // TODO. 
        }); 
}  

private DispatcherQueueController _queueController; 
private DispatcherQueue _queue; 
private RadialControllerIndependentInputSource radialInput; 

Comentários

Chame DispatcherQueueController.CreateOnDedicatedThread para criar o DispatcherQueue no thread em segundo plano em que RadialControllerIndependentInputSource é instanciado. Acesse este DispatcherQueue usando a propriedade RadialControllerIndependentInputSource.DispatcherQueue .

Histórico de versão

Versão do Windows Versão do SDK Valor adicionado
1803 17134 DispatcherQueue

Propriedades

Controller

Obtém uma referência a um dispositivo ou acessório de entrada de roda, como o Surface Dial.

Dispatcher

Obtém o dispatcher de mensagem de evento associado à exibição atual.

DispatcherQueue

Obtém o DispatcherQueue associado a este RadialControllerIndependentInputSource.

Métodos

CreateForView(CoreApplicationView)

Obtém uma instância de RadialControllerIndependentInputSource para o CoreWindow atual do aplicativo em execução.

Aplica-se a