[英]C# WPF PowerModeChanged doesn't work on Surface
在非表面設備中測試下面的代碼工作得很好但是當我在表面上嘗試時,我只在取下電源線時才會收到通知('statusChange'powerMode被觸發)。 將表面置於SLEEP處理器中,它不會被調用('resume'和'suspend'powerModes沒有被觸發)。
誰知道為什么? 謝謝。
表面規格:
操作系統名稱:Microsoft Windows 10 Pro
版本:10.0.17134Compilação17134
OS制造商:Microsoft Corporation
系統制造商:Microsoft Corporation
系統型號:Surface Pro
系統類型:基於x64的PC
系統SKU:Surface_Pro_1796
示例[WPF Visual Studio Pro 2015]
主窗口:
using System;
using System.Windows;
using Microsoft.Win32;
namespace WpfApplication2
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
// SystemEvents.PowerModeChanged += new PowerModeChangedEventHandler(SystemEvents_PowerModeChanged);
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
SystemEvents.PowerModeChanged += new PowerModeChangedEventHandler(SystemEvents_PowerModeChanged);
}
private void SystemEvents_PowerModeChanged(object sender, PowerModeChangedEventArgs e)
{
listView1.Items.Add(string.Format("{0} : Power mode changed = {1}", DateTime.Now, e.Mode));
}
}
}
XAML
<Window x:Class="WpfApplication2.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApplication2"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525" Loaded="Window_Loaded">
<Grid>
<ListView x:Name="listView1" Margin="0">
<ListView.View>
<GridView>
<GridViewColumn/>
</GridView>
</ListView.View>
</ListView>
</Grid>
</Window>
我也在研究這個問題。 根據我的閱讀,Surface支持“睡眠狀態(現代待機)”或S0低功耗,並且尚未處於實際睡眠狀態(S1-3)。 按下電源按鈕或從Windows菜單中單擊“睡眠”選項不會直接進入睡眠狀態,而是進入S0低功耗狀態,因此不會觸發PowerModeChanged。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.