Интерфейс 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) |