Поделиться через


Интерфейс IApplicationDesignModeSettings2 (shobjidl_core.h)

Позволяет приложениям средств разработки динамически управлять состояниями системы и пользователей, например собственным разрешением дисплея, коэффициентом масштабирования устройства и макетом представления приложений, которые передаются в приложения Магазина Windows с целью тестирования приложений Магазина Windows, работающих в режиме конструктора, для широкого спектра форм-факторов без необходимости в фактическом оборудовании. Кроме того, позволяет тестировать изменения в обычно управляемом пользователем состоянии для тестирования приложений Магазина Windows в различных сценариях.

Наследование

Интерфейс IApplicationDesignModeSettings2 наследуется от IApplicationDesignModeSettings. IApplicationDesignModeSettings2 также содержит следующие типы элементов:

Методы

Интерфейс IApplicationDesignModeSettings2 содержит следующие методы.

 
IApplicationDesignModeSettings2::GetApplicationSizeBounds

Эти методы извлекают границы размера, поддерживаемые приложением.
IApplicationDesignModeSettings2::GetApplicationViewOrientation

Возвращает ориентацию окна режима конструктора приложения.
IApplicationDesignModeSettings2::SetAdjacentDisplayEdges

Задает, будет ли окно приложения находиться рядом с краем эмулированного дисплея.
IApplicationDesignModeSettings2::SetApplicationViewMinWidth

Задает нужную минимальную ширину окна режима конструктора приложения.
IApplicationDesignModeSettings2::SetApplicationViewOrientation

Задает ориентацию окна, используемую для окна режима конструктора.
IApplicationDesignModeSettings2::SetIsOnLockScreen

Этот метод определяет, может ли приложение в режиме конструктора отображать сведения на экране Windows 8 блокировки.
IApplicationDesignModeSettings2::SetNativeDisplayOrientation

Задает ориентацию эмулированного дисплея для окна режима конструктора.

Комментарии

Этот интерфейс получается путем совместного CLSID_ApplicationDesignModeSettings. Это расширение исходного интерфейса IApplicationDesignModeSettings .

Примеры

В этом примере Visual Studio запускает приложение в режиме конструктора, который переопределяет минимальную ширину на дисплее размером 1366x768. Затем он включает ползунок, который позволяет пользователю динамически изменять ширину приложений. Для этого необходимо использовать новые API SetApplicationViewMinWidth и GetApplicationSizeBounds , чтобы вычислить минимальные и максимальные размеры, допустимые для этого типа приложений.

Дополнительные сведения об IInitializeWithWindow::Initialize см. в разделе Отображение объектов пользовательского интерфейса WinRT, зависящих от CoreWindow.

ComPtr<IApplicationDesignModeSettings> spDesignModeSettings;

// CoCreate the design mode settings object
HRESULT hr = CoCreateInstance(CLSID_ApplicationDesignModeSettings, nullptr, CLSCTX_INPROC, IID_PPV_ARGS(&spDesignModeSettings));
if (SUCCEEDED(hr))
{
    ComPtr<IInitializeWithWindow> spInitializeWithWindow;
    hr = pDesignModeSettings->QueryInterface(IID_PPV_ARGS(&spInitializeWithWindow);
    if (SUCCEEDED(hr))
    {
        // Before we set any design mode 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 = spInitializeWithWindow->Initialize(hwndProxyCoreWindow);
    }

    if (SUCCEEDED(hr))
    {
        // Set the native display size to 1366x768
        SIZE sizeDisplay = {1366, 768};
        hr = spDesignModeSettings->SetNativeDisplaySize(sizeDisplay);
        if (SUCCEEDED(hr))
        {
            // Set the native display orientation to landscape
            hr = spDesignModeSettings->SetNativeDisplayOrientation(NDO_LANDSCAPE);
            if (SUCCEEDED(hr))
            {
                // Set the scale factor to 100%
                DEVICE_SCALE_FACTOR scaleFactor = SCALE_100_PERCENT;
                hr = spDesignModeSettings->SetScaleFactor(scaleFactor);
            }
        }
    }

    if (SUCCEEDED(hr))
    {

        // Override the app’s minimum width
        hr = spDesignModeSettings->SetApplicationViewMinWidth(AVMW_320);
        if (SUCCEEDED(hr))
        {
            SIZE sizeAppMin;
            SIZE sizeAppMax;
            hr = spDesignModeSettings->GetApplicationSizeBounds(&sizeAppMin, &sizeAppMax);
            if (SUCCEEDED(hr))
            {
                // Push the min and max size to the slider control,
                // to update the values that it maps to
                …

                // Start by sizing the app to its min bound, so compute the                         
                // resulting view orientation
                APPLICATION_VIEW_ORIENTATION viewOrientation;
                hr = spDesignModeSettings->GetApplicationViewOrientation(sizeAppMin, &viewOrientation);
                if (SUCCEEDED(hr))
                {
                    // Set the app view orientation
                    hr = spDesignModeSettings->SetApplicationViewOrientation(viewOrientation);
                }
            }
        }
    }

    if (SUCCEEDED(hr))
    {
        // Set the adjacent display edges so that the app is touching just the left edge of the screen
        hr = spDesignModeSettings->SetAdjacentDisplayEdges(ADE_LEFT);
    }
}

Требования

Требование Значение
Минимальная версия клиента Windows 8.1 [только классические приложения]
Минимальная версия сервера Windows Server 2012 R2 [только классические приложения]
Целевая платформа Windows
Header shobjidl_core.h (включая Shobjidl.h)

См. также раздел

IApplicationDesignModeSettings