共用方式為


ToastOcclusionManagerPreview.SetToastWindowMargin(WindowId, Double) 方法

定義

要求 OS 顯示具有指定垂直位移的應用程式通知,以檢視圖元為單位,以避免通知遮蔽指定視窗中的內容。

重要

ToastOcclusionManagerPreview.SetToastWindowMargin API 是有限存取功能的一部分, (請參閱 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.TryUnlockFeature,並傳入 Microsoft 提供的功能識別碼和應用程式令牌,以確認應用程式已獲授權使用 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;
    }
}

適用於

另請參閱