DisplayRequest クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
表示要求を表します。
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
- 継承
- 属性
Windows の要件
デバイス ファミリ |
Windows 10 (10.0.10240.0 で導入)
|
API contract |
Windows.Foundation.UniversalApiContract (v1.0 で導入)
|
例
次のコード ( 表示電源状態サンプルから取得) は、表示要求をアクティブ化、追跡、および解放する方法を示しています。
/// <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
注釈
電力を節約し、バッテリ寿命を延ばすために、一定の時間ユーザー アクティビティを検出しない場合、システムはコンピューターの電力を削減します。 システムの電源設定によっては、最初にディスプレイが淡色表示され、スクリーン セーバーが表示され、最終的にシステムが低電力スリープ状態になるとディスプレイがオフになることがあります。
ユーザー入力なしでビデオを表示したり、長時間実行したりするアプリは、 DisplayRequest.RequestActive を呼び出すことによって、ディスプレイのオン状態を維持するよう要求できます。 表示要求がアクティブ化されると、アプリが表示されている間、デバイスのディスプレイはオンのままです。 ユーザーがアプリをフォアグラウンドから移動すると、システムはアプリの表示要求を非アクティブ化し、アプリがフォアグラウンドに戻ったときに再アクティブ化します。
表示要求は累積的です。各表示要求は、 DisplayRequest.RequestRelease を個別に呼び出して解放する必要があります。 アプリでは、アクティブな表示要求の数を追跡し、表示を維持する必要がなくなったときに、すべて (それぞれ DisplayRequest.RequestRelease への対応する呼び出しを含む) が解放されていることを確認する必要があります。 詳細については、次のトピックを参照してください。
ディスプレイ要求を使用してディスプレイをオンにしたままにすると、多くの電力が消費されます。 表示要求を使用する場合のアプリの動作を最適にするため、次のガイドラインを使用します。
- 表示要求は、必要な場合にのみ使用します。つまり、ユーザー入力が必要ないが、ディスプレイはオンのままである必要がある場合です。 たとえば、全画面表示プレゼンテーション中や、ユーザーが電子書籍を読んでいる場合などです。
- 不要になったら、各表示要求をすぐに解放します。
注意
このクラスはアジャイルではありません。つまり、スレッド モデルとマーシャリング動作を考慮する必要があります。 詳細については、「スレッド処理とマーシャリング (C++/CX)」および「マルチスレッド環境での Windows ランタイム オブジェクトの使用 (.NET)」を参照してください。
Windows Phone 8
この API は、ネイティブ アプリでのみサポートされています。
コンストラクター
DisplayRequest() |
DisplayRequest クラスのインスタンスを作成します。 |
メソッド
RequestActive() |
表示要求をアクティブにします。 |
RequestRelease() |
表示要求を非アクティブ化します。 |