4

那么,我的问题是什么?我有一个popup,当我打开它时,我想在我的 Windows Phone 应用程序中禁用当前页面。所以我做了这个this.IsEnabled = false;但我ApplicationBar的仍然可用。我当然尝试:

ApplicationBar.IsMenuEnabled = false;

我的下一个想法是做这样的事情:

for (int i = 0; i < ApplicationBar.MenuItems.Count; i++)
{
    ((ApplicationBarMenuItem)ApplicationBar.Buttons[i]).IsEnabled = false;
}

仍然没有结果。我敢肯定以前有人这样做过,你能告诉我怎么做吗?

4

5 回答 5

14

应用程序栏由 Buttons 集合和 MenuItems 集合组成。对于您的示例,您可能想尝试类似

foreach (var button in ApplicationBar.Buttons)
{
    ((ApplicationBarIconButton) button).IsEnabled = false; // disables the button
}

ApplicationBar.IsMenuEnabled = false; // this will prevent menu from opening

如果这不起作用,您是否考虑过隐藏应用栏?
ApplicationBar.IsVisible = false;

于 2012-10-05T22:25:53.123 回答
3

这个怎么样

((ApplicationBarIconButton)this.ApplicationBar.Buttons[1]).IsEnabled = true;

其中 [1] 是您要启用/禁用的按钮的索引

我知道这是可行的,因为我有在 Windows Phone 8 应用程序中使用它的代码

你能贴一些代码给我们看看吗

于 2014-07-11T06:53:08.333 回答
2

不幸的是,根据这篇文章有一个错误,这意味着在菜单关闭并重新打开之前,设置IsEnabledan 的属性ApplicationBarMenuItem不会得到尊重。

于 2012-10-29T09:45:14.583 回答
0

只需包含 using Microsoft.Phone.Shell 来获取 .cs 文件中的命名空间,您就可以执行以下操作:

ApplicationBar.Enable();

ApplicationBar.Disable();

根据http://new.efficientcoder.net/2010/10/windows-phone-7-quick-tip-17.html

于 2012-10-05T14:51:51.853 回答
0

试试这个 :

xml:

<shell:ApplicationBar IsVisible="False">

。CS

Dispatcher.BeginInvoke(() =>
            {
                UIHelper.ToggleVisibility(Canvas_LocationAR_Trans);
                UIHelper.ToggleVisibility(Grid_LocARLoadingGrid);
                **ApplicationBar.IsVisible = true;**
            });
于 2013-07-26T07:17:04.573 回答