【问题标题】:Minimize Event ( C# Win 8.1 app)最小化事件(C# Win 8.1 应用程序)
【发布时间】:2013-12-04 18:48:52
【问题描述】:

我正在为 Windows 8.1 开发一个应用程序,当应用程序在侧边栏中最小化时,我需要执行一个方法来暂停某些任务或播放声音。

我试过了:

Application.Current.Suspending += new SuspendingEventHandler(Method_Name);

private void Method_Name(object sender, object e)
{
     Other_Method();
}

但在我最小化应用程序后,此事件需要几秒钟 (5~10) 才能发生。

当应用被拖到侧边栏时会发生什么事件?什么进程发送事件?

谢谢。

【问题讨论】:

    标签: c# xaml windows-store-apps windows-8.1


    【解决方案1】:

    查看this post 以获得答案。它是WindowSizeChanged 并检查ApplicationView.Value 的值。

    [编辑]

    显然,对于 8.1,情况发生了一些变化。 ApplicationView 的东西已被弃用(这很快),但这仍然发生在窗口的 SizeChanged 中。 Check out this了解更多详情。

    【讨论】:

    • 这是我尝试的第一件事。我使用 WindowSizeChanged 事件来检测应用程序的状态(Filled、FullScreenPortrait、FullScreenLandscape 和 Snapped),但是当窗口在侧边栏中最小化。
    【解决方案2】:

    经过长时间的搜索,我发现了一些不是我想要的东西,但它确实有效。

    每当页面的可见性发生变化(例如启动、最大化或最小化)时都会发生此事件,那么您必须使用 if 运算符执行一些条件。

    Window.Current.VisibilityChanged += new WindowVisibilityChangedEventHandler(One_Method);
    
    private void One_Method(object sender, Windows.UI.Core.VisibilityChangedEventArgs e)
    {
        if(Some_Condition)
        {
            //TODO: Code that you want execute.
        }
    }
    

    如果有人知道更有效的方法,我会保持开放的答案。

    【讨论】:

      猜你喜欢
      • 2013-06-06
      • 1970-01-01
      • 2016-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多