繁体   English   中英

C#WPF PowerModeChanged在Surface上不起作用

[英]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。

https://docs.microsoft.com/en-us/windows/desktop/power/system-power-states#sleep-state-modern-standby

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM