Compartilhar via


ToastOcclusionManagerPreview.SetToastWindowMargin(WindowId, Double) Método

Definição

Solicita que o sistema operacional exiba notificações do aplicativo com o deslocamento vertical especificado, em pixels de exibição, a fim de evitar que a notificação oclua o conteúdo na janela especificada.

Importante

A API ToastOcclusionManagerPreview.SetToastWindowMargin faz parte de um Recurso de Acesso Limitado (consulte a classe LimitedAccessFeatures). Para obter mais informações ou solicitar um token de desbloqueio, use o Formulário de Solicitação de Token de Acesso do 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)

Parâmetros

appWindowId
WindowId

A WindowId da janela para associada à solicitação de deslocamento de notificação. Para que o deslocamento seja aplicado, a janela especificada deve ser maximizada, em foco, na tela primária e o teclado na tela não deve estar visível.

margin
Double

double

O deslocamento vertical com o qual as notificações do aplicativo são exibidas, em pixels de exibição. O valor máximo atual para a margem é de 180 pixels. As solicitações de margens maiores que 180 pixels serão bem-sucedidas, mas serão fixadas a 180 pixels. Se um valor negativo for especificado, ele será fixado em 0.

Comentários

Essa API está sendo lançada como uma versão prévia para habilitar o teste do recurso por clientes corporativos. É provável que essa API seja removida e/ou modificada em uma versão futura. Antes de usar a API, os aplicativos devem chamar LimitedAccessFeatures.TryUnlockFeature, passando a ID do recurso e o token de aplicativo fornecidos pela Microsoft, para verificar se o aplicativo está autorizado a usar a API. Chamadas de aplicativos não autorizados não terão efeito.

O código de exemplo a seguir demonstra como marcar para a disponibilidade de SetToastWindowMargin para o aplicativo de chamada e, se ele estiver disponível, chame a API para solicitar que as notificações do aplicativo sejam deslocadas para cima em 90 pixels. Essas chamadas devem ser feitas durante a inicialização do aplicativo.

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

Aplica-se a

Confira também