Condividi tramite


RemappingButtonCategory Enumerazione

Definizione

Tipi di remapping del gamepad.

public enum class RemappingButtonCategory
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Gaming.Input.GamingInputPreviewContract, 131072)]
enum class RemappingButtonCategory
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Gaming.Input.GamingInputPreviewContract), 131072)]
public enum RemappingButtonCategory
var value = Windows.Gaming.Input.Preview.RemappingButtonCategory.buttonSettings
Public Enum RemappingButtonCategory
Ereditarietà
RemappingButtonCategory
Attributi

Requisiti Windows

Famiglia di dispositivi
Windows Desktop Extension SDK (è stato introdotto in 10.0.23665.0)
API contract
Windows.Gaming.Input.GamingInputPreviewContract (è stato introdotto in v2.0)

Campi

AnalogSettings 1

Usato per scambiare controlli analogici.

ButtonSettings 0

Usato per eseguire nuovamente il mapping dei pulsanti.

ShareDoublePress 9

Non implementato.

ShareDoublePressMetaData 10

Non implementato.

ShareDoublePressMetaDataDisplay 11

Non implementato.

ShareLongPress 6

Non implementato.

ShareLongPressMetaData 7

Non implementato.

ShareLongPressMetaDataDisplay 8

Non implementato.

ShareShortPress 3

Non implementato.

ShareShortPressMetaData 4

Non implementato.

ShareShortPressMetaDataDisplay 5

Non implementato.

VibrationSettings 2

Usato per disabilitare la vibrazione.

Esempio

void RemapButtons(IGameController controller, IGameControllerProvider controllerProvider)
{
    LegacyGipGameControllerProvider legacyGipGameControllerProvider =
        LegacyGipGameControllerProvider.FromGameControllerProvider(controllerProvider);

    // Retrieve all current remappings set for standard controllers
    IReadOnlyDictionary<RemappingButtonCategory, object> currentMappings =
        legacyGipGameControllerProvider.GetStandardControllerButtonRemapping(
            controller.User, false);

    // Swap two of the buttons
    Dictionary<RemappingButtonCategory, object> remaps =
        new Dictionary<RemappingButtonCategory, object>();

    // Duplicates are not allowed. Swap two of the buttons
    UInt64 currentButtonMappings =
       (UInt64)currentMappings[RemappingButtonCategory.ButtonSettings];

    // Isolate the buttons we want to remap
    UInt64 lastButton = (currentButtonMappings & 0xf000000000000000);
    UInt64 secondLastButton = currentButtonMappings & 0x0f00000000000000;

    // Swap their positions
    UInt64 newMapping = (lastButton >> 4) | (secondLastButton << 4);

    // Recombine with the original mappings
    UInt64 newButtonMappings = (currentButtonMappings & 0x00ffffffffffffff) | newMapping;

    // Add the new button remappings to the mapping dictionary
    remaps.Add(RemappingButtonCategory.ButtonSettings, newButtonMappings);

    // Update controller mapping
    legacyGipGameControllerProvider.SetStandardControllerButtonRemapping(
        controller.User, false, newButtonMappings);
}

Commenti

Attenzione

Il mapping del controller è a livello di sistema e persistente per l'utente specificato. Questa operazione deve essere eseguita solo in base alla direzione dell'utente.

Si applica a