Freigeben über


DisplayRequest Klasse

Definition

Stellt eine Anzeigeanforderung dar.

public ref class DisplayRequest sealed
/// [Windows.Foundation.Metadata.Activatable(65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.None)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.STA)]
class DisplayRequest final
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.None)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.STA)]
/// [Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
class DisplayRequest final
[Windows.Foundation.Metadata.Activatable(65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.None)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.STA)]
public sealed class DisplayRequest
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.None)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.STA)]
[Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
public sealed class DisplayRequest
function DisplayRequest()
Public NotInheritable Class DisplayRequest
Vererbung
Object Platform::Object IInspectable DisplayRequest
Attribute

Windows-Anforderungen

Gerätefamilie
Windows 10 (eingeführt in 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (eingeführt in v1.0)

Beispiele

Der folgende Code (aus dem Beispiel für den Anzeigeleistungszustand) zeigt, wie Anzeigeanforderungen aktiviert, nachverfolgt und freigegeben werden.

/// <param name="sender"></param> 
/// <param name="e"></param> 
private void Activate_Click(object sender, RoutedEventArgs e)
{
    Error.Text = string.Empty;
    Button b = sender as Button;
    if (b != null)
    {
        try
        {
            if (g_DisplayRequest == null)
            {
                // This call creates an instance of the displayRequest object 
                g_DisplayRequest = new DisplayRequest();
            }
        }
        catch (Exception ex)
        {
            rootPage.NotifyUser("Error Creating Display Request: " + ex.Message, NotifyType.ErrorMessage);
        }

        if (g_DisplayRequest != null)
        {
            try
            {
                // This call activates a display-required request. If successful,  
                // the screen is guaranteed not to turn off automatically due to user inactivity. 
                g_DisplayRequest.RequestActive();
                drCount += 1;
                rootPage.NotifyUser("Display request activated (" + drCount + ")", NotifyType.StatusMessage);
            }
            catch (Exception ex)
            {
                rootPage.NotifyUser("Error: " + ex.Message, NotifyType.ErrorMessage);
            }
        }
    }
}

/// <param name="sender"></param> 
/// <param name="e"></param> 
private void Release_Click(object sender, RoutedEventArgs e)
{
    Error.Text = string.Empty;
    Button b = sender as Button;
    if (b != null)
    {
        if (g_DisplayRequest != null)
        {
            try
            {
                // This call de-activates the display-required request. If successful, the screen 
                // might be turned off automatically due to a user inactivity, depending on the 
                // power policy settings of the system. The requestRelease method throws an exception  
                // if it is called before a successful requestActive call on this object. 
                g_DisplayRequest.RequestRelease();
                drCount -= 1;
                rootPage.NotifyUser("Display request released (" + drCount + ")", NotifyType.StatusMessage);
            }
            catch (Exception ex)
            {
                rootPage.NotifyUser("Error: " + ex.Message, NotifyType.ErrorMessage);
            }
        }
    }
}
''' <param name="sender"></param> 
''' <param name="e"></param> 
Private Sub Activate_Click(sender As Object, e As RoutedEventArgs) 
    ErrorTestBlock.Text = String.Empty 
    Dim b As Button = TryCast(sender, Button) 
    If b IsNot Nothing Then 
        Try 
            If g_DisplayRequest Is Nothing Then 
                ' This call creates an instance of the displayRequest object 
                g_DisplayRequest = New DisplayRequest() 
            End If 
        Catch ex As Exception 
            rootPage.NotifyUser("Error Creating Display Request: " & ex.Message, NotifyType.ErrorMessage) 
        End Try 

        If g_DisplayRequest IsNot Nothing Then 
            Try 
                ' This call activates a display-required request. If successful,  
                ' the screen is guaranteed not to turn off automatically due to user inactivity. 
                g_DisplayRequest.RequestActive() 
                drCount += 1 
                rootPage.NotifyUser("Display request activated (" & drCount & ")", NotifyType.StatusMessage) 
            Catch ex As Exception 
                rootPage.NotifyUser("Error:" & ex.Message, NotifyType.ErrorMessage) 
            End Try 
        End If 
    End If 
End Sub

''' <param name="sender"></param> 
''' <param name="e"></param> 
Private Sub Release_Click(sender As Object, e As RoutedEventArgs) 
    ErrorTestBlock.Text = String.Empty 
    Dim b As Button = TryCast(sender, Button) 
    If b IsNot Nothing Then 
        If g_DisplayRequest IsNot Nothing Then 
            Try 
                ' This call de-activates the display-required request. If successful, the screen 
                ' might be turned off automatically due to a user inactivity, depending on the 
                ' power policy settings of the system. The requestRelease method throws an exception  
                ' if it is called before a successful requestActive call on this object. 
                g_DisplayRequest.RequestRelease() 
                drCount -= 1 
                rootPage.NotifyUser("Display request released (" & drCount & ")", NotifyType.StatusMessage) 
            Catch ex As Exception 
                rootPage.NotifyUser("Error: " & ex.Message, NotifyType.ErrorMessage) 
            End Try 
        End If 
    End If 
End Sub 

Hinweise

Um Strom zu sparen und die Akkulaufzeit zu verlängern, reduziert das System die Stromversorgung des Computers, wenn es für eine bestimmte Zeit keine Benutzeraktivitäten erkennt. Je nach Systemstromeinstellungen kann die Anzeige zunächst abgeblendet, ein Bildschirmschoner angezeigt werden, und schließlich kann die Anzeige ausgeschaltet werden, wenn das System in einen Energiesparmodus wechselt.

Apps, die Videos anzeigen oder für längere Zeiträume ohne Benutzereingabe ausgeführt werden, können anfordern, dass die Anzeige aktiviert bleibt, indem Sie DisplayRequest.RequestActive aufrufen. Wenn eine Anzeigeanforderung aktiviert wird, bleibt die Anzeige des Geräts eingeschaltet, während die App sichtbar ist. Wenn der Benutzer die App aus dem Vordergrund verschiebt, deaktiviert das System die Anzeigeanforderungen der App und reaktiviert sie, wenn die App in den Vordergrund zurückkehrt.

Anzeigeanforderungen sind kumulativ: Jede Anzeigeanforderung muss mit einem separaten Aufruf von DisplayRequest.RequestRelease freigegeben werden. Eine App sollte die Anzahl der aktiven Anzeigeanforderungen nachverfolgen und sicherstellen, dass alle freigegeben werden (jeweils mit einem entsprechenden Aufruf von DisplayRequest.RequestRelease), wenn die App nicht mehr benötigt, dass die Anzeige eingeschaltet bleibt. Weitere Informationen finden Sie unter:

Die Verwendung von Anzeigeanforderungen, um den Bildschirm eingeschaltet zu halten, verbraucht viel Energie. Verwenden Sie diese Richtlinien für das beste App-Verhalten bei Verwendung von Anzeigeanforderungen.

  • Verwenden Sie Anzeigeanforderungen nur dann, wenn dies erforderlich ist, d. h. zeiten, in denen keine Benutzereingaben erwartet werden, die Anzeige aber eingeschaltet bleiben soll. Beispielsweise während Vollbildpräsentationen oder wenn der Benutzer ein E-Book liest.
  • Lassen Sie jede Anzeigeanforderung los, sobald sie nicht mehr erforderlich ist.

Hinweis

Diese Klasse ist nicht agil, was bedeutet, dass Sie das Threadingmodell und das Marshallverhalten berücksichtigen müssen. Weitere Informationen finden Sie unter Threading and Marshaling (C++/CX) und Using Windows-Runtime objects in a multithreaded environment (.NET).

Windows Phone 8

Diese API wird nur in nativen Apps unterstützt.

Konstruktoren

DisplayRequest()

Erstellt eine instance der DisplayRequest-Klasse.

Methoden

RequestActive()

Aktiviert eine Anzeigeanforderung.

RequestRelease()

Deaktiviert eine Anzeigeanforderung.

Gilt für: