Compartir a través de


Interfaz IApplicationDesignModeSettings (shobjidl_core.h)

Permite a las aplicaciones de herramientas de desarrollo suplantar dinámicamente el sistema y los estados de usuario, como la resolución de pantalla nativa, el factor de escala del dispositivo y el estado de vista de la aplicación, con el fin de probar las aplicaciones de la Tienda Windows que se ejecutan en modo de diseño para una amplia gama de factores de forma sin necesidad del hardware real. También permite probar los cambios en estado controlado por el usuario normalmente para probar las aplicaciones de la Tienda Windows en una variedad de escenarios.

Herencia

La interfaz IApplicationDesignModeSettings hereda de la interfaz IUnknown . IApplicationDesignModeSettings también tiene estos tipos de miembros:

Métodos

La interfaz IApplicationDesignModeSettings tiene estos métodos.

 
IApplicationDesignModeSettings::ComputeApplicationSize

Obtiene el tamaño de la aplicación de la Tienda Windows, en función del conjunto actual de configuraciones suplantadas.
IApplicationDesignModeSettings::IsApplicationViewStateSupported

Determina si se admite un estado de vista de aplicación determinado para una configuración específica de tamaño de visualización y factor de escalado.
IApplicationDesignModeSettings::SetApplicationViewState

Establece un estado de vista de aplicación suplantado (horizontal de pantalla completa, vertical de pantalla completa, rellenado o acoplado) que se usará para una aplicación de la Tienda Windows que se ejecuta en modo de diseño.
IApplicationDesignModeSettings::SetNativeDisplaySize

Establece un tamaño de pantalla nativo suplantado que se usará para una aplicación de la Tienda Windows que se ejecuta en modo de diseño.
IApplicationDesignModeSettings::SetScaleFactor

Establece un factor de escala de dispositivos suplantados que se usará para una aplicación de la Tienda Windows que se ejecuta en modo de diseño.
IApplicationDesignModeSettings::TriggerEdgeGesture

Envía un evento de gesto perimetral suplantado a la ventana principal del proxy en el subproceso del autor de la llamada. Este gesto alterna la barra de aplicaciones de la aplicación, si la aplicación admite una. El autor de la llamada puede especificar el tipo de entrada que desencadenó el gesto de borde.

Comentarios

Esta interfaz se adquiere mediante la creación conjunta de CLSID_ApplicationDesignModeSettings.

Normalmente, los usuarios seguirán un patrón de uso similar al siguiente:

  1. Llama a CoCreateInstance con CLSID_ApplicationDesignModeSettings para crear el objeto de configuración del modo de diseño de la aplicación en un subproceso del proceso de aplicación de la Tienda Windows.
  2. Llame a QueryInterface en el objeto de configuración del modo de diseño de la aplicación para obtener un objeto IInitializeWithWindow .
  3. Llame al método Initialize del objeto IInitializeWithWindow y pase el HWND para la ventana del núcleo proxy. Esto se debe hacer antes de llamar a cualquier método "set" y solo se realizará correctamente una vez por proceso. Para obtener un ejemplo de código, vea [Mostrar objetos de interfaz de usuario de WinRT que dependen de CoreWindow](/windows/apps/develop/ui-input/display-ui-objects#winui-3-with-c).
  4. Llama a QueryInterface para IApplicationDesignModeSettings y suplanta el estado de prueba necesario llamando a sus métodos adecuados (SetNativeDisplaySize, SetScaleFactor, etc.). Estos métodos desencadenarán los eventos de Windows Runtime adecuados que se activarán para la aplicación de la Tienda Windows.
  5. Llame al método ComputeApplicationSize para determinar el tamaño adecuado de la aplicación, en función del estado suplantado actualmente. Se debe haber llamado a todos los métodos de diseño "set" o se producirá un error en esta llamada. La aplicación de la herramienta de desarrollo es responsable de colocar y cambiar el tamaño de las ventanas de la aplicación, cuando corresponda.

Cuándo implementar

No implemente esta interfaz; la implementación se proporciona con Windows.

Cuándo usar

Usa los métodos de esta interfaz para probar la aplicación de la Tienda Windows en varios escenarios y configuraciones suplantadas.

Ejemplos

En este ejemplo se muestran los métodos de esta interfaz en uso.


IApplicationDesignModeSettings *pDesignModeSettings;

// CoCreate the design mode settings object
HRESULT hr = CoCreateInstance(CLSID_ApplicationDesignModeSettings, nullptr, CLSCTX_INPROC, IID_PPV_ARGS(&pDesignModeSettings));
if (SUCCEEDED(hr))
{
    IInitializeWithWindow *pInitializeWithWindow;
    hr = pDesignModeSettings->QueryInterface(IID_PPV_ARGS(&pInitializeWithWindow);
    if (SUCCEEDED(hr))
    {
        // Before we spoof any state, we must first initialize the design
        // mode settings object with a proxy core window. Since apps
        // running in design mode don't have an actual core window, we must
        // supply an HWND that can be used as a proxy.
        hr = pInitializeWithWindow->Initialize(hwndProxyCoreWindow);
        pInitializeWithWindow->Release();
    }

    if (SUCCEEDED(hr))
    {
        // Verify that our desired spoofed settings are supported.
        SIZE sizeNativeDisplay = {1366, 768};
        SCALE_FACTOR scaleFactor = SCALE_100_PERCENT;
        APPLICATION_VIEW_STATE viewState = AVS_FULLSCREEN_LANDSCAPE;
        BOOL fSupported;
        hr = pDesignModeSettings->IsApplicationViewStateSupported(viewState,
                                                                  sizeNativeDisplay,
                                                                  scaleFactor,
                                                                  &fSupported);
    }

    if (SUCCEEDED(hr) && fSupported))
    {
        // Set the spoofed native display size.
        hr = pDesignModeSettings->SetNativeDisplaySize(sizeNativeDisplay);

        if (SUCCEEDED(hr))
        {
            // Set the spoofed scale factor to 100%.
            hr = pDesignModeSettings->SetScaleFactor(SCALE_100_PERCENT);
        }

        if (SUCCEEDED(hr))
        {
            // Set the spoofed application view state to full-screen landscape.
            hr = pDesignModeSettings->SetApplicationViewState(AVS_FULLSCREEN_LANDSCAPE);
        }

        if (SUCCEEDED(hr))
        {
            // Now that all the necessary state has been spoofed, calculate
            // the size that the app should occupy.
            SIZE sizeApplication;
            hr = pDesignModeSettings->ComputeApplicationSize(&sizeApplication);
        }
    }

    pDesignModeSettings->Release();
}

Requisitos

Requisito Value
Cliente mínimo compatible Windows 8 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2012 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado shobjidl_core.h (incluya Shobjidl.h)