Condividi tramite


RadialControllerIndependentInputSource Classe

Definizione

Consente a un'app di gestire l'input del controller radiale nel thread in background.

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
Ereditarietà
Object Platform::Object IInspectable RadialControllerIndependentInputSource
Attributi

Requisiti Windows

Famiglia di dispositivi
Windows 10 Creators Update (è stato introdotto in 10.0.15063.0)
API contract
Windows.Foundation.UniversalApiContract (è stato introdotto in v4.0)

Esempio

In questo caso viene creato un oggetto DispatcherQueue in un thread di sfondo dedicato e quindi si inizializza un oggetto RadialControllerInpdependentInputSource, creato nel thread in background.

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; 

Commenti

Chiamare DispatcherQueueController.CreateOnDedicatedThread per creare il dispatcherQueue nel thread in background in cui viene creata un'istanza di RadialControllerIndependentInputSource. Accedere a questo dispatcherQueue usando la proprietà RadialControllerIndependentInputSource.DispatcherQueue .

Cronologia delle versioni

Versione di Windows Versione dell'SDK Valore aggiunto
1803 17134 DispatcherQueue

Proprietà

Controller

Ottiene un riferimento a un dispositivo di input della rotellina o a un accessorio, ad esempio Surface Dial.

Dispatcher

Ottiene il dispatcher dei messaggi di evento associato alla visualizzazione corrente.

DispatcherQueue

Ottiene dispatcherQueue associato a radialControllerIndependentInputSource.

Metodi

CreateForView(CoreApplicationView)

Ottiene un'istanza di RadialControllerIndependentInputSource per coreWindow corrente dell'app in esecuzione.

Si applica a