ToastOcclusionManagerPreview.SetToastWindowMargin(WindowId, Double) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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;
}
}