ToastOcclusionManagerPreview.SetToastWindowMargin(WindowId, Double) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Richiede che le notifiche dell'app del sistema operativo vengano visualizzate con l'offset verticale specificato, in pixel di visualizzazione, per evitare l'occlusione del contenuto di notifica nella finestra specificata.
Importante
L'API ToastOcclusionManagerPreview.SetToastWindowMargin fa parte di una funzionalità di accesso limitato (vedere La classe LimitedAccessFeatures). Per altre informazioni o per richiedere un token di sblocco, usare il modulo richiesta token di accesso 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)
Parametri
- appWindowId
- WindowId
WindowId della finestra per associata alla richiesta di offset di notifica. Per applicare l'offset, la finestra specificata deve essere ingrandita, in messa a fuoco, sullo schermo primario e la tastiera sullo schermo non deve essere visibile.
- margin
-
Double
double
Offset verticale con cui vengono visualizzate le notifiche dell'app, in pixel di visualizzazione. Il valore massimo corrente per il margine è 180 pixel. Le richieste per i margini superiori a 180 pixel avranno esito positivo, ma verranno bloccate a 180 pixel. Se viene specificato un valore negativo, viene bloccato su 0.
Commenti
Questa API viene rilasciata come anteprima per abilitare il test della funzionalità da parte dei clienti aziendali. Questa API potrebbe essere rimossa e/o modificata in una versione futura. Prima di usare l'API, le app devono chiamare LimitedAccessFeatures.TryUnlockFeature, passando l'ID funzionalità e il token dell'app forniti da Microsoft, per verificare che l'app sia autorizzata a usare l'API. Le chiamate da app non autorizzate non avranno alcun effetto.
Il codice di esempio seguente illustra come verificare la disponibilità di SetToastWindowMargin per l'app chiamante e, se disponibile, chiamare l'API per richiedere che le notifiche dell'app vengano spostate verso l'alto di 90 pixel. Queste chiamate devono essere eseguite durante l'avvio dell'app.
// 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;
}
}