public class MainViewModel MyViewModel : INotifyPropertyChanged
{
Window window { get; set; }
public MyViewModel()
{
window = Window.Current;
}
async void MyWebSocketService_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
switch (e.PropertyName)
{
case "ActivateWindow"
ActivateWindow();
break;
}
}
void ActivateWindow()
{
await Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
{
window.Activate();
window.CoreWindow.Activate();
});
}
}
我正在尝试获取一个隐藏的或最小化的 UWP 应用程序,以便在收到 WebSocket 通知后重新获得操作系统的焦点。这是我试过的代码。它开火但没有任何反应。有没有办法实现我想要做的事情?
最佳答案
UWP 应用无法从最小化状态自行恢复,因为它的执行状态已暂停(因此无法运行任何代码)。恢复需要在外部触发,由用户或另一个正在运行的应用程序触发,它可以通过任何受支持的应用程序激活 API 激活挂起的 UWP 应用程序,例如通过协议(protocol)启动 - 正如您已经知道的那样。
关于c# - UWP 应用程序可以自行激活其窗口吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49459721/