Freigeben über


ToastOcclusionManagerPreview.SetToastWindowMargin(WindowId, Double) Methode

Definition

Fordert an, dass das Betriebssystem App-Benachrichtigungen mit dem angegebenen vertikalen Offset in Ansichtspixeln anzeigt, um zu vermeiden, dass der Inhalt der Benachrichtigung im angegebenen Fenster verdeckt wird.

Wichtig

Die ToastOcclusionManagerPreview.SetToastWindowMargin-API ist Teil eines Features mit eingeschränktem Zugriff (siehe LimitedAccessFeatures-Klasse). Um weitere Informationen zu erhalten oder ein Entsperrtoken anzufordern, verwenden Sie das Anforderungsformular für LAF-Zugriffstoken.

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)

Parameter

appWindowId
WindowId

Die WindowId des Fensters für, das der Benachrichtigungsoffsetanforderung zugeordnet ist. Damit der Offset angewendet wird, muss das angegebene Fenster auf dem primären Bildschirm im Fokus maximiert werden, und die Bildschirmtastatur darf nicht sichtbar sein.

margin
Double

double

Der vertikale Offset, mit dem App-Benachrichtigungen in Ansichtspixeln angezeigt werden. Der aktuelle Höchstwert für den Rand beträgt 180 Pixel. Anforderungen für Ränder, die größer als 180 Pixel sind, sind erfolgreich, werden aber auf 180 Pixel eingespannt. Wenn ein negativer Wert angegeben wird, wird er auf 0 geklemmt.

Hinweise

Diese API wird als Vorschauversion veröffentlicht, um das Testen des Features durch Unternehmenskunden zu ermöglichen. Diese API wird wahrscheinlich in einem zukünftigen Release entfernt und/oder geändert. Vor der Verwendung der API sollten Apps LimitedAccessFeatures.TryUnlockFeatures aufrufen und die von Microsoft bereitgestellte Feature-ID und das App-Token übergeben, um zu überprüfen, ob die App für die Verwendung der API autorisiert ist. Aufrufe von nicht autorisierten Apps haben keine Auswirkungen.

Der folgende Beispielcode veranschaulicht, wie Sie die Verfügbarkeit von SetToastWindowMargin für die aufrufende App überprüfen und, falls verfügbar, die API aufrufen, um anzufordern, dass App-Benachrichtigungen um 90 Pixel nach oben verschoben werden. Diese Aufrufe sollten während des App-Starts erfolgen.

// 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;
    }
}

Gilt für:

Weitere Informationen