如何禁用设置弹出窗口中的设置(超级按钮栏)

时间:2014-01-30 15:09:42

标签: javascript windows-store-apps windows-8.1

我需要在我的应用的设置弹出窗口中禁用设置。这可能吗?

详情

当用户打开我的应用的超级按钮栏并点击“设置”时,应用的onsettings事件会触发,我会添加如下命令:

e.detail.applicationcommands = {
    "aboutFlyout": { title: "About", href: "/settings/about/about.html" },
    "optionsFlyout": { title: "Options", href: "/settings/options/options.html" }
};

现在我需要根据某些内部应用状态禁用或启用“选项”设置。我特别不想隐藏设置条目,以便用户可以随时发现它。

我怎么能这样做?

3 个答案:

答案 0 :(得分:0)

我认为没有直接的方法可以做到这一点。

您可能需要创建新的optionsDisabledFlyout。

if (condition)
{
   display the optionsFlyout option
}
else
{
  display the optionsDisabledFlyout
}

将optionsDisabledFlyout的settings.HeaderBrush值设置为灰色,以显示已禁用的效果。并且,请确保您的optionsDisabledFlyout在调用时不会启动新页面。

答案 1 :(得分:0)

if(condition)
    e.detail.applicationcommands = {
        "aboutFlyout": { title: "About", href: "/settings/about/about.html" },
        "optionsFlyout": { title: "Options", href: "/settings/options/options.html" }
    };
else
    e.detail.applicationcommands = {
        "aboutFlyout": { title: "About", href: "/settings/about/about.html" },
    };

答案 2 :(得分:0)

据我所知,你无法禁用它。我明白了选择的可发现性。

我认为最好的选择是保留这样的命令,并在“选项”页面上显示一些消息,表明控件已被禁用,因为它被禁用了。

我想到的另一件事是将href参数留空?不确定会发生什么,但可能只是一个没有做任何事情的超链接。 (也不是用户友好的)