ToastOcclusionManagerPreview.SetToastWindowMargin(WindowId, Double) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Запрашивает, чтобы оси отображали уведомления приложения с указанным вертикальным смещением в пикселях представления, чтобы избежать того, чтобы уведомления не блокировали содержимое в указанном окне.
Важно!
API ToastOcclusionManagerPreview.SetToastWindowMargin является частью функции ограниченного доступа (см. класс LimitedAccessFeatures). Для получения дополнительных сведений или запроса маркера разблокировки используйте форму запроса маркера доступа LAF.
public:
static void SetToastWindowMargin(WindowId appWindowId, double margin);
static void SetToastWindowMargin(WindowId const& appWindowId, double const& margin);
public static void SetToastWindowMargin(WindowId appWindowId, double margin);
function setToastWindowMargin(appWindowId, margin)
Public Shared Sub SetToastWindowMargin (appWindowId As WindowId, margin As Double)
Параметры
- appWindowId
- WindowId
WindowId окна для, связанного с запросом смещения уведомления. Чтобы применить смещение, указанное окно должно быть развернуто в фокусе на основном экране, а экранная клавиатура не должна быть видимой.
- margin
-
Double
double
Вертикальное смещение, с помощью которого отображаются уведомления приложения в пикселях представления. Текущее максимальное значение поля составляет 180 пикселей. Запросы на поля больше 180 пикселей будут выполнены успешно, но будут зажаты до 180 пикселей. Если указано отрицательное значение, оно зажимается до 0.
Комментарии
Этот API выпускается в качестве предварительной версии для тестирования функции корпоративными клиентами. Этот API, скорее всего, будет удален и (или) изменен в будущем выпуске. Перед использованием API приложения должны вызвать LimitedAccessFeatures.TryUnlockFeatures, передав идентификатор компонента и маркер приложения, предоставленные корпорацией Майкрософт, чтобы убедиться, что приложение авторизовано для использования API. Вызовы неавторизованных приложений не будут иметь никакого влияния.
В следующем примере кода показано, как проверка для доступности SetToastWindowMargin для вызывающего приложения и, если он доступен, вызвать API, чтобы запросить, чтобы уведомления приложения были смещены на 90 пикселей. Эти вызовы должны выполняться во время запуска приложения.
// App.xaml.cpp
static Platform::String^ FeatureName = L"com.microsoft.windows.ui.notifications.preview.toastOcclusionManagerPreview";
static Platform::String^ ApiToken = L"[API token]";
static Platform::String^ ApiAttestation = L"[Package family name] has registered their use of com.microsoft.windows.ui.notifications.preview.toastOcclusionManagerPreview with Microsoft and agrees to the terms of use.";
App::App()
{
InitializeComponent();
Suspending += ref new SuspendingEventHandler(this, &App::OnSuspending);
m_isToastOcclusionManagerPreviewAvailable = DetectToastOcclusionManagerPreview();
}
bool App::DetectToastOcclusionManagerPreview()
{
LimitedAccessFeatureRequestResult^ result = LimitedAccessFeatures::TryUnlockFeature(FeatureName, ApiToken, ApiAttestation);
switch (result->Status)
{
case LimitedAccessFeatureStatus::Available:
case LimitedAccessFeatureStatus::AvailableWithoutToken:
return true;
}
return false;
}
void App::OnLaunched(Windows::ApplicationModel::Activation::LaunchActivatedEventArgs^ e)
{
...
// Request for toast window to be shifted up 90 pixels
// Toasts will only be shifted up if the window is maximized,
// on the primary screen and the software keyboard isn't present.
if (!m_isRegistered && m_isToastOcclusionManagerPreviewAvailable)
{
HWND window;
IInspectable* inspectable = reinterpret_cast<IInspectable*>(CoreWindow::GetForCurrentThread());
winrt::com_ptr<ICoreWindowInterop> interop;
if (SUCCEEDED(inspectable->QueryInterface(IID_PPV_ARGS(&interop))) && SUCCEEDED(interop->get_WindowHandle(&window)))
{
// Get the windowId
winrt::Windows::UI::WindowId windowId{ reinterpret_cast<uint64_t>(window) };
ToastOcclusionManagerPreview::SetToastWindowMargin(windowId, 90);
}
m_isRegistered = true;
}
}