Freigeben über


RadialControllerIndependentInputSource Klasse

Definition

Ermöglicht es einer App, radiale Controllereingaben im Hintergrundthread zu verarbeiten.

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
Vererbung
Object Platform::Object IInspectable RadialControllerIndependentInputSource
Attribute

Windows-Anforderungen

Gerätefamilie
Windows 10 Creators Update (eingeführt in 10.0.15063.0)
API contract
Windows.Foundation.UniversalApiContract (eingeführt in v4.0)

Beispiele

Hier erstellen wir eine DispatcherQueue in einem dedizierten Hintergrundthread und initialisieren dann ein RadialControllerInpdependentInputSource-Objekt, das im Hintergrundthread erstellt wird.

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; 

Hinweise

Rufen Sie DispatcherQueueController.CreateOnDedicatedThread auf, um die DispatcherQueue in dem Hintergrundthread zu erstellen, in dem radialControllerIndependentInputSource instanziiert wird. Greifen Sie mithilfe der RadialControllerIndependentInputSource.DispatcherQueue-Eigenschaft auf diese DispatcherQueue-Eigenschaft zu.

Versionsverlauf

Windows-Version SDK-Version Mehrwert
1803 17134 DispatcherQueue

Eigenschaften

Controller

Ruft einen Verweis auf ein Radeingabegerät oder Zubehör wie das Surface Dial ab.

Dispatcher

Ruft den Ereignisnachrichtenverteiler ab, der der aktuellen Ansicht zugeordnet ist.

DispatcherQueue

Ruft die DispatcherQueue ab, die diesem RadialControllerIndependentInputSource zugeordnet ist.

Methoden

CreateForView(CoreApplicationView)

Ruft eine instance radialControllerIndependentInputSource für den aktuellen CoreWindow der ausgeführten App ab.

Gilt für: