ToastOcclusionManagerPreview.SetToastWindowMargin(WindowId, Double) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Solicita que el sistema operativo muestre las notificaciones de la aplicación con el desplazamiento vertical especificado, en píxeles de vista, para evitar que el contenido de la notificación oclua el contenido en la ventana especificada.
Importante
La API ToastOcclusionManagerPreview.SetToastWindowMargin forma parte de una característica de acceso limitado (consulte La clase LimitedAccessFeatures). Para obtener más información o solicitar un token de desbloqueo, use el formulario de solicitud de token de acceso 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
WindowId de la ventana para asociada a la solicitud de desplazamiento de notificación. Para que se aplique el desplazamiento, la ventana especificada debe maximizarse, en el foco, en la pantalla principal y el teclado en pantalla no debe ser visible.
- margin
-
Double
double
Desplazamiento vertical con el que se muestran las notificaciones de la aplicación, en píxeles de vista. El valor máximo actual del margen es de 180 píxeles. Las solicitudes de márgenes superiores a 180 píxeles se realizarán correctamente, pero se restringirán a 180 píxeles. Si se especifica un valor negativo, se sujeta a 0.
Comentarios
Esta API se publica como versión preliminar para habilitar las pruebas de la característica por parte de los clientes empresariales. Es probable que esta API se quite o modifique en una versión futura. Antes de usar la API, las aplicaciones deben llamar a LimitedAccessFeatures.TryUnlockFeature, pasando el identificador de característica y el token de aplicación proporcionados por Microsoft, para comprobar que la aplicación está autorizada para usar la API. Las llamadas por aplicaciones no autorizadas no tendrán ningún efecto.
En el código de ejemplo siguiente se muestra cómo comprobar la disponibilidad de SetToastWindowMargin para la aplicación que realiza la llamada y, si está disponible, llamar a la API para solicitar que las notificaciones de la aplicación cambien por 90 píxeles. Estas llamadas se deben realizar durante el inicio de la aplicación.
// 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;
}
}